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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
》这一题的重点就是首先把码元表示出来,这里我是使用了randi([0,1],1,N);
4 i+ C- |. O1 [  Z- m- F
6 J( R- w  c. B# S  h9 C3 F随机生成了0或者1,生产了N个随机数。7 X2 r7 J; _- E8 p

2 k8 C( h+ H: B3 l》接着表示基本码元,这里的是单极性不归零NRZ码元,所以gt1= ones(1,N_sample);%不归零。之后就应用基本码元函数来生成所需要的最后的序列。
$ o0 T. }0 R- e1 p. _2 ^
6 |/ H, ^4 u! L9 H2 B, S, T, t9 f3 S》再根据所生成的每一个码元把基本码元添加到里面。
) E( Q# B8 X( h2 z3 L1 w
/ i# h" i- h( T+ oyt1((i-1)*N_sample+1:i*N_sample) = gt1;  " ^5 K+ r9 Y8 j' H# y. M7 C8 E  F- Z

' a/ y$ m3 M5 |/ {》最后利用快速傅里叶变换fft得到频谱,再用conj求出共轭这就相当于求了频谱模的平方。接着除以时间N就可以得到功率谱。! U+ x# z/ G2 e$ v2 q

: O4 b4 @1 W2 X* I$ _/ k% ?& L# B》在生成的图我们会发现有许多的冲激,那么你就可以看看这些冲击都是在哪一些位置,试着去掉着一些冲激。
% O! G" m0 R" {3 j4 h; W7 z. I* K5 J) z8 x8 Y7 @# X
for i = 1:80  1 f" I! \6 x; X; Y: T4 X

! K$ [* G  K: N( A4 l9 g6 Q6 ^     Pf1(i*100 + 1) = Pf1(i*10);& v6 A3 c6 D' }+ D( Q  W$ b5 T

! B0 F4 I5 f/ P: I% \5 eend
/ L8 B( u" ?; S$ r6 w9 R8 Q0 B1 m
4 K! B, g% [; z  z/ }要生成别的码元表示只要稍微修改即可。
# C% n' }" b; p. j+ y6 _) {* ^& g$ z4 b
最后参考代码是:(图的显示的时候要多运行几次,最后效果才出来)
! Y2 ^3 M4 G$ [! U- F
0 E  T$ g8 m# v. r+ n/ ?% \% ?( Q% communication principle: v, ^- z; @% ^  u( `  n
% Lab 6 problem 1
5 L/ M0 k, |% k& ~2 w5 I0 B9 mfunction single_polar_code$ ]# s- @$ W! C" e5 n1 b# x
clear all;( c7 ~  C) M) Q* x8 F0 j6 @
format long;
( d' a, @, b, N2 R, m6 RTs       = 1;                %码元周期
# U, N& l1 f5 A' gN_sample = 128;              %每个码元抽样点数
7 ]; ^: y! h2 w2 L0 e9 B% D& R# edt       = Ts/N_sample;      %抽样的时间间隔* j1 z4 H& w4 J. k! c, o
N        = 100;               %码元数6 g: F8 t: u  R/ s% o: ~% d, h
t        = 0: dt: (N*N_sample-1)*dt;
; [- g# M# V/ Y- V% `( n1 W% 基本码元 g(t) = 1. B; y, N( _2 |; S- W9 k( ?  j
gt1      = ones(1,N_sample);                          %不归零) P5 O) x: t6 [( {
gt2      = [ones(1,N_sample/2),zeros(1,N_sample/2)];  %归零,占空比为0.5
6 K* o  s9 [+ D. D$ f" Igt3      = sinc(2*t(1:N_sample)/Ts);                  %sin(2*pi*t(1:N_sample)/Ts)/(2*pi*(1:N_sample)/Ts)/ m1 u  @- Q  l' e% `
gt0      = zeros(1,N_sample);/ v+ |# a# w3 X- d
  ~4 v' P* J9 r/ C* h: q) z8 D
%生成随机码元3 ?4 ]. K1 m( e2 X1 q
random_code = randi([0,1],1,N);
) n9 I0 w/ R9 v$ Y- w2 O  R! V( R2 d( n$ r( `, e
%单极性波形的最后结果) T2 N1 V- x6 a5 A. J5 r
yt1      = zeros(1,N*N_sample-1);      4 I; W, m$ x9 |+ i; [9 T- W
yt2      = zeros(1,N*N_sample-1);
' l+ l8 Y7 _9 E: X. |" h9 Hyt3      = zeros(1,N*N_sample-1);* s( Y+ O! _  X
for i = 1:N
/ Z" i% i$ ]2 O6 b% l5 l    if random_code(i) == 1                             %得到波形图
. P$ ]3 B- k9 k5 \1 m        yt1((i-1)*N_sample+1:i*N_sample) = gt1;        %单极性不归零NRZ波形
/ Y- x6 ~) x- T/ b        yt2((i-1)*N_sample+1:i*N_sample) = gt2;        %单极性归零RZ波形4 a% Z' P0 }# T0 H
        yt3((i-1)*N_sample+1:i*N_sample) = gt3;        %双极性sinc波形
) g9 v( R3 h7 W    else
9 y/ a9 E0 a4 ?1 s3 M4 N        yt1((i-1)*N_sample+1:i*N_sample) = gt0;        %没有这一行会经常报错9 _8 ^) a0 y4 U2 S' v
        yt2((i-1)*N_sample+1:i*N_sample) = gt0;
* r& z, j" t5 y+ K- ^        yt3((i-1)*N_sample+1:i*N_sample) = (-1)*gt3;$ M6 i9 U6 Z* q
    end/ I: L, g" H) p/ S& y' ~# B
end
; r: N5 \; |  e2 v; k$ V, L! a2 n9 P1 T+ K
%*********************************************************************
' J4 J/ h: p& ~" Z+ E%求单极性不归零时域波形于波功率谱密度  h) h% o' z/ [& c# Q$ I  D2 g
figure(1)
6 A$ L2 ]9 s1 ^( x& i; K$ g0 Ssubplot(2,1,1);
) i) |! c. _& s: l1 A$ Q& U  r' b& _1 Kplot(t,yt1,'r');
2 e' F4 q0 q; G9 ~" ?title('单极性不归零NRZ波形');) I5 A) K$ D& e9 Z" ~
xlabel('时间t/s');
9 d! X% m) j4 e3 a% g1 Baxis([0,20,-0.5,1.5]);                %画单极性不归零NRZ波形信号幅度频谱2 u0 P, A# L/ I. }5 ]/ C
grid;9 D1 r; f9 J$ W9 \7 s

: |+ s. x! T1 L; ]' QFt1 = fft(yt1);% a8 }( `& s5 H3 X: L; c
Ft1 = fftshift(Ft1);
1 T2 r* K& C8 v7 a/ Dp   = (Ft1.*conj(Ft1))/N;                    %计算功率谱密度  5 Q) F( b5 z! C* R' \' K- E
ff1 = (-length(Ft1)/2:length(Ft1)/2-1)/10;4 v- |1 D% F* u* |$ E8 w5 z* F
Pf1 = 10*log10(p);8 j. q* @$ B/ V7 h1 E3 h& \
for i = 1:80
8 D$ r: V+ Y3 z( c6 E    Pf1(i*100 + 1) = Pf1(i*10);
- T4 M9 Y& _/ r* y: iend
* m, R. m+ L0 Csubplot(2,1,2);
, }9 {1 f3 w" Y" u$ gplot(ff1,Pf1);( Z' w# j' V$ o+ B! a
axis([-50,50,-50,50]);               %画出单极性不归零NRZ波形功率谱密度8 e8 w8 [, Q8 d& o& k. E& z& M  x5 K
grid;! k4 R6 z4 V/ N- Z
%*********************************************************************4 A4 V. i: a3 q% @$ x" C1 w

' m  A  J5 l2 W! |7 v! r" T%*********************************************************************
: K. {( L% k# z* ?%求单极性归零时域波形与波功率谱密度$ n2 g! D- A2 r7 G$ `* |7 m7 S
figure(2)# _1 f  r. k8 Y
subplot(2,1,1);1 d, p# e4 l, z  A/ A* A6 W' \1 q
plot(t,yt2,'r');4 X+ G4 e  p. c1 n4 ]  x: O6 `
title('单极性归零RZ波形');
7 {9 i# U4 a. H) e; jxlabel('时间t/s');
  b1 r; J8 Y! k: Caxis([0,20,-0.5,1.5]);              %画出单极性归零RZ波形功率谱密度
, R, Z' H6 t* e' a9 Pgrid;8 t8 r  i! l3 P2 ?

; n7 H8 {3 q7 GFt2  = fft(yt2);1 e, \6 t1 ?1 c  e% H! ~
Ft2 = fftshift(Ft2);0 T6 j6 u9 @2 c9 N" q+ F+ }6 P
p2   = (Ft2.*conj(Ft2))/N;                 %计算功率谱密度  * z, b7 X1 f# e5 v0 L# V
ff2  = (-length(Ft2)/2:length(Ft2)/2-1)/10;
1 Q- `; m0 f( |Pf2  = 10*log10(p2);
* F8 L% [6 G7 `- |# {* k8 Hfor i = 1:80
/ ~2 H2 l  b9 R1 {6 B5 G    Pf2(i*100 + 1) = Pf1(i*10);
* c2 R5 O) O& n9 hend; a. w9 f" O9 f+ J+ R# \
subplot(2,1,2);
( m2 X/ j: m' Fplot(ff2,Pf2);% l% ]9 N5 U9 |) t( b
axis([-50,50,-50,50]);             %画出单极性不归零NRZ波形功率谱密度
" ]- h- d) g# X) |: {0 M% `grid;
; I6 w. ]4 |. D. Z1 T1 A%*********************************************************************/ F0 n5 z' u) @3 ~, J! G6 N
, v0 I1 e5 c7 q8 G8 g% C% X
%*********************************************************************
5 t/ o6 g6 V' M7 p( ^%求双极性sinc波形时域波形与功率谱密度0 B! y. ]' c% K8 z% q; e
figure(3)0 C# A; K: c; h  v
subplot(2,1,1);; g5 Q* ]2 V2 h* I  ?+ r
plot(t,yt3,'r');7 c" H7 T; g, X8 U
title('双极性sinc波形');
& z* ~; j% F) _; N* h! e' e5 v' kxlabel('时间t/s');
- |8 b; Z. t) w( H" baxis([0,20,-1.5,1.5]);              %画出双极性sinc波形功率谱密度; f" k' _/ q7 O9 B+ F, M4 X
grid;
3 c& c. D# t, [# i  T8 x" o: _$ L0 g4 W& a
Ft3 = fft(yt3);) R* R: `# x+ ~* j$ q0 _
Ft3 = fftshift(Ft3);2 w1 z2 k! P& B
p3   = (Ft3.*conj(Ft3))/20;               %计算功率谱密度  6 h: O# D! X4 i. `
ff3  = (-length(Ft3)/2:length(Ft3)/2-1)/10;9 g2 i1 F( |4 s, F. D
Pf3  = 10*log10(p3);
; [, l0 x' c/ D* F) ?subplot(2,1,2);3 p! v" J# P! `3 b1 ~3 r
plot(ff3,Pf3(1:length(Ft3)));
0 C9 \2 ?+ A& ^) {- h9 ]/ X5 baxis([-50,50,-50,60]);             %画出单极性不归零NRZ波形功率谱密度0 z1 o& C4 j5 c) W( \; b
grid;; J9 C- y* j. j" X
%**************************
  • 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 06:50 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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