找回密码
 注册
关于网站域名变更的通知
查看: 714|回复: 1
打印 上一主题 下一主题

Matlab之求随机生成数字信号单极性不归零码的时域图并求功率谱

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-11-16 16:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
》这一题的重点就是首先把码元表示出来,这里我是使用了randi([0,1],1,N);
/ ]* E, ^9 C; M
, a- b% R6 \; Q) q; ?# @随机生成了0或者1,生产了N个随机数。
; s, F, H& p; P' I
% a( J0 q' p- K& q# C》接着表示基本码元,这里的是单极性不归零NRZ码元,所以gt1= ones(1,N_sample);%不归零。之后就应用基本码元函数来生成所需要的最后的序列。- }  ?' [  B& X* j. e* Q) \

# i8 U/ N1 t! v》再根据所生成的每一个码元把基本码元添加到里面。
8 @! W0 U- ~& I/ V4 l/ _% o9 Q- H  q2 B) Q! p  D! _- l* A3 M/ r
yt1((i-1)*N_sample+1:i*N_sample) = gt1;  + @  a/ S# @# _
# g2 L( K, W. S; d8 h# j/ L" I7 `
》最后利用快速傅里叶变换fft得到频谱,再用conj求出共轭这就相当于求了频谱模的平方。接着除以时间N就可以得到功率谱。
/ l' y& K/ _& N) Z; s! J% [& v+ M7 o: z& ~5 l$ |' M7 B
》在生成的图我们会发现有许多的冲激,那么你就可以看看这些冲击都是在哪一些位置,试着去掉着一些冲激。* [5 R2 Q7 Q% s( b% ^
& W1 E& Y  z' ?$ x: ~- ?
for i = 1:80  ! C& z) C8 z) E/ J+ w
% D. Q7 K' r9 r) x
     Pf1(i*100 + 1) = Pf1(i*10);
/ G& ?1 ^2 ?1 J3 G6 T: D3 d$ U
; W- S8 V1 Q5 C! kend
& m& `% H4 i9 [. V0 i! @  c' q7 K2 J
要生成别的码元表示只要稍微修改即可。
. n: s" X/ {+ B( q6 u$ m4 a3 C
. P% r" k9 @* |6 X; O最后参考代码是:(图的显示的时候要多运行几次,最后效果才出来)
0 k- g, U$ p, O7 m5 G% ]+ k* [8 E
6 _8 V, w) a- _0 D! J% communication principle) H. K( G) Z) J/ x) z1 y2 e6 Y1 O
% Lab 6 problem 19 C5 C6 v, L1 e1 u9 `
function single_polar_code, V6 V9 j7 V' m: F/ p
clear all;
0 o1 ~# x: Y2 hformat long;, V( q/ f% D5 V: E) U) ?2 y
Ts       = 1;                %码元周期
* d: j! k, J- ^+ d( o8 YN_sample = 128;              %每个码元抽样点数% o9 K) L/ W8 {/ g. g
dt       = Ts/N_sample;      %抽样的时间间隔7 k. L. o2 d0 ~! T
N        = 100;               %码元数4 m5 I( Y: j8 V4 I$ B* y3 T
t        = 0: dt: (N*N_sample-1)*dt;
& r* R5 l" h) f7 Y/ |1 ]% 基本码元 g(t) = 1$ w+ i) e8 O9 U( h3 U
gt1      = ones(1,N_sample);                          %不归零
+ [7 u! X' a, b* _; Lgt2      = [ones(1,N_sample/2),zeros(1,N_sample/2)];  %归零,占空比为0.5
7 k! d5 Q0 Q' q6 }3 C2 fgt3      = sinc(2*t(1:N_sample)/Ts);                  %sin(2*pi*t(1:N_sample)/Ts)/(2*pi*(1:N_sample)/Ts)1 b6 O& }6 E. u/ ^
gt0      = zeros(1,N_sample);
: `  u7 q) y3 r$ ]' p& k) ~* s( p" j4 b& y
%生成随机码元
* d3 G- i* {  ], f5 f( Zrandom_code = randi([0,1],1,N);4 F8 q$ G1 _* n* N$ ?' B
8 I$ i& T4 z% |# F/ |9 B4 U- J
%单极性波形的最后结果* L- Z6 v4 Y! l$ W, T; u3 M  J
yt1      = zeros(1,N*N_sample-1);      
' u- }% @/ w' V8 q# E' @- uyt2      = zeros(1,N*N_sample-1);
5 g3 u  W# a: c7 G- _' B7 ^yt3      = zeros(1,N*N_sample-1);
. o3 R$ {! o% y1 I5 A0 j1 B; Ifor i = 1:N
) I/ S+ a1 S+ Q; N    if random_code(i) == 1                             %得到波形图1 }6 k0 X" A6 k% h
        yt1((i-1)*N_sample+1:i*N_sample) = gt1;        %单极性不归零NRZ波形
* C3 V6 s& {% N+ ?        yt2((i-1)*N_sample+1:i*N_sample) = gt2;        %单极性归零RZ波形
9 i5 J$ n, [9 U5 ~4 ]        yt3((i-1)*N_sample+1:i*N_sample) = gt3;        %双极性sinc波形/ V3 n) M$ p& w
    else
! S) p' ]2 z9 k) a        yt1((i-1)*N_sample+1:i*N_sample) = gt0;        %没有这一行会经常报错) W  e& U" H/ J* }6 h
        yt2((i-1)*N_sample+1:i*N_sample) = gt0;
7 i; t/ ?0 M& C7 G% I        yt3((i-1)*N_sample+1:i*N_sample) = (-1)*gt3;
4 a5 J- T  I' z( s( Y; U% n4 a& v* {    end9 @& {0 A: _  y5 m. d! `1 P
end0 t9 }  I& w8 W5 S# T/ O

+ r: {" m- T& o! ~%*********************************************************************0 [& I6 B$ u' ~5 u
%求单极性不归零时域波形于波功率谱密度/ c& w3 g. f, @) O/ R1 B
figure(1)
) ?: D# v0 s+ Q, o. h4 Y, ?! Zsubplot(2,1,1);. A, y% u" M2 L! J, C
plot(t,yt1,'r');7 h  B$ Y* M7 w" R6 l! S6 V2 t
title('单极性不归零NRZ波形');
0 g8 h/ }7 F! A( H5 Kxlabel('时间t/s');6 d5 H0 u& U5 q+ L7 ?
axis([0,20,-0.5,1.5]);                %画单极性不归零NRZ波形信号幅度频谱
( G& Q$ M) \2 M# ?7 {3 |& Igrid;
) Y# N% Z, k5 K) T- g" X$ }2 B8 X. r" u
Ft1 = fft(yt1);
# O, c0 o  P7 C- vFt1 = fftshift(Ft1);! U$ \8 f# e$ {# q
p   = (Ft1.*conj(Ft1))/N;                    %计算功率谱密度  
: E( |% D, |7 z/ ~ff1 = (-length(Ft1)/2:length(Ft1)/2-1)/10;7 W1 G- Y# b7 `/ S" K
Pf1 = 10*log10(p);
7 s8 o/ f0 J( n* o6 `8 afor i = 1:80
0 C! M9 F6 ]( n7 c- P% b    Pf1(i*100 + 1) = Pf1(i*10);# h6 |4 o8 G, D2 K( t9 u) `
end
2 _  Q$ t5 a$ r# H- i5 M) i7 ssubplot(2,1,2);
3 B* S# \5 i2 W% o4 r+ ]* yplot(ff1,Pf1);
( O9 s6 h; ], T& O9 Z& Maxis([-50,50,-50,50]);               %画出单极性不归零NRZ波形功率谱密度
" Z' P/ u. u- ygrid;
: |0 @/ I) r/ H" t%*********************************************************************6 ~( S- ]) [& P6 g
( ~1 z- h' ?1 y/ U- }4 e1 L6 n
%*********************************************************************
4 V- w7 {5 X) D$ B/ Y% X+ q%求单极性归零时域波形与波功率谱密度
- I5 q. ?( H8 {/ ^' V  U7 l5 ffigure(2)+ {$ r7 m1 K1 g8 M4 G: }
subplot(2,1,1);
% y( [# j! B3 \* H! a& r1 B6 dplot(t,yt2,'r');
: B; q6 [6 A4 O/ g& h) \$ @8 h' Y) wtitle('单极性归零RZ波形');! F9 _9 `) D! C( {
xlabel('时间t/s');
  ?  t5 }* d: M! faxis([0,20,-0.5,1.5]);              %画出单极性归零RZ波形功率谱密度
' d+ t( m: Z+ E( e7 R# Ygrid;
8 s7 v" N+ Y7 M4 \, a; }: J$ y
  R: E% r1 i1 S0 H- M& OFt2  = fft(yt2);3 V9 l! Y2 ]4 k* ^- ]: ~
Ft2 = fftshift(Ft2);# h+ c) C- V* U
p2   = (Ft2.*conj(Ft2))/N;                 %计算功率谱密度  
2 d% V" v' |" M; U% v& `+ C  uff2  = (-length(Ft2)/2:length(Ft2)/2-1)/10;  V* \( K1 a" ?' V) [5 @* R3 n' G
Pf2  = 10*log10(p2);
8 S" s6 A& L1 u! i$ Z% qfor i = 1:80- [5 T" F0 q) U7 }* n
    Pf2(i*100 + 1) = Pf1(i*10);
" t- P7 E# {( n1 n" j5 p% Aend
* o0 D$ ^8 L* Lsubplot(2,1,2);
( {" H# D8 e; W2 G2 w! Q7 O+ Cplot(ff2,Pf2);
: L% P* h% G+ r% n2 B( Maxis([-50,50,-50,50]);             %画出单极性不归零NRZ波形功率谱密度3 j2 ~2 |, O! _1 z2 \
grid;
+ I2 v& _, }. F  _%*********************************************************************! y: l$ T+ C! Z8 \& v
! g  p, i5 E: A1 ^( t9 N* p
%*********************************************************************
3 Y. N5 x' J: u$ H: d%求双极性sinc波形时域波形与功率谱密度3 w0 Y. P+ g' O) z: ^& T
figure(3)
, X5 e( ^5 n. o, o' C: @: esubplot(2,1,1);* r: v3 X. W) A' ?( j( g* w. n; Z' s
plot(t,yt3,'r');
7 Y4 y2 V* C8 Y! d- e" }title('双极性sinc波形');
2 q+ i! Y4 M' w) Z$ I2 ixlabel('时间t/s');
0 P, J7 p6 i6 Yaxis([0,20,-1.5,1.5]);              %画出双极性sinc波形功率谱密度
: [: N, _0 A* E  L" `  J- Pgrid;
8 R: y0 I0 d# ^* j# B' g( Q% c& i& s% g0 f: Y+ g) `  B
Ft3 = fft(yt3);
3 |6 M  P# E- k9 I6 M; F- @Ft3 = fftshift(Ft3);
% e1 s6 d, X  B/ A# {! Lp3   = (Ft3.*conj(Ft3))/20;               %计算功率谱密度  
1 `7 E9 m2 b; Y% {+ Vff3  = (-length(Ft3)/2:length(Ft3)/2-1)/10;
) }3 ^' x$ ]( s7 i; }% k  cPf3  = 10*log10(p3);
, |- A7 q! I: y8 U" H6 H/ [: |subplot(2,1,2);
7 N. i# p% Z6 K5 @0 p+ m, ]8 m6 T. g' _plot(ff3,Pf3(1:length(Ft3)));
" n- n" s& l( [axis([-50,50,-50,60]);             %画出单极性不归零NRZ波形功率谱密度8 C) }: Q: ?. D5 R- U/ n
grid;7 p5 l1 \* O, H" v2 @# i& f
%**************************
  • TA的每日心情

    2019-11-29 15:37
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2020-11-16 17:30 | 只看该作者
    Matlab之求随机生成数字信号单极性不归零码的时域图并求功率谱
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-11-24 05:51 , Processed in 0.156250 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表