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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
》这一题的重点就是首先把码元表示出来,这里我是使用了randi([0,1],1,N);
4 g# D# d6 Q5 e$ A: `; ?  k+ `4 E' |# ?
随机生成了0或者1,生产了N个随机数。
( Z1 B# q8 O$ S& C
% P- x& x6 Q  x8 r* W$ J1 v* x3 m》接着表示基本码元,这里的是单极性不归零NRZ码元,所以gt1= ones(1,N_sample);%不归零。之后就应用基本码元函数来生成所需要的最后的序列。
" p% `) J* L9 c% n9 |) g6 [
# P0 g0 `& E8 K% _+ h》再根据所生成的每一个码元把基本码元添加到里面。
1 X# f% Q+ l, l8 O- ?& M( @
5 x( H% P! r! e6 U/ M( r0 K, R2 ?yt1((i-1)*N_sample+1:i*N_sample) = gt1;  
2 b$ ~- F6 _% t% `1 w
8 U9 i. N, S1 |8 j3 L  U0 s- q》最后利用快速傅里叶变换fft得到频谱,再用conj求出共轭这就相当于求了频谱模的平方。接着除以时间N就可以得到功率谱。
8 ?8 v. m( _$ [( L7 k+ J2 ^; y# o1 V
( i4 y# d8 x" E: Y* C* y7 Z》在生成的图我们会发现有许多的冲激,那么你就可以看看这些冲击都是在哪一些位置,试着去掉着一些冲激。
# g, b3 k) I3 ]- @
2 j# f8 X8 z0 x7 ]for i = 1:80  : u! h0 u8 V: i& b, h
: [  G+ H7 q* H+ O+ {# I" ~
     Pf1(i*100 + 1) = Pf1(i*10);
$ r" ~! ?3 H- P: B1 n/ Y
1 G6 w# K% G, a& K% f$ hend
/ B5 S# u0 D0 ?) c$ b" v+ K; b: [3 I# e% B; m+ c
要生成别的码元表示只要稍微修改即可。9 r. h2 D! t$ @, M/ K* N6 i0 d, k

0 X& I% K7 n& R; C最后参考代码是:(图的显示的时候要多运行几次,最后效果才出来)
3 |* O# k5 T. x; o% F
- s/ ~% G' S) K: P, o9 a% communication principle
: i+ c& }0 L5 n' W: f+ L) y4 p# ?% Lab 6 problem 1
! U% s# D* d, o( L# J" Vfunction single_polar_code9 u( [2 A( r) g) `# s2 ^$ ^
clear all;
/ Z3 v6 }% w9 k# T1 Mformat long;* _: ^' e7 }3 t2 x2 F$ _# @
Ts       = 1;                %码元周期% G, Y9 E, m& p5 N8 s/ {
N_sample = 128;              %每个码元抽样点数2 ~. V5 l+ o1 {& [2 j# w+ q, R
dt       = Ts/N_sample;      %抽样的时间间隔
" q. M8 n: {, Q# O4 ]N        = 100;               %码元数
5 j$ \- b7 b1 ]- s/ `t        = 0: dt: (N*N_sample-1)*dt;) }: C; i9 _: W
% 基本码元 g(t) = 1' \# y: ]* h9 J5 Y" I8 h$ }
gt1      = ones(1,N_sample);                          %不归零, @% M3 M7 R+ f) z% W
gt2      = [ones(1,N_sample/2),zeros(1,N_sample/2)];  %归零,占空比为0.54 d' ~' R8 @4 {
gt3      = sinc(2*t(1:N_sample)/Ts);                  %sin(2*pi*t(1:N_sample)/Ts)/(2*pi*(1:N_sample)/Ts): j2 Y; M  v4 B' E
gt0      = zeros(1,N_sample);0 a% }7 m; ^) d) V3 ]! u8 a

( ^  ]9 Z* ~8 x) t8 ]5 x%生成随机码元1 X- }! q6 Q, P7 ~/ o
random_code = randi([0,1],1,N);( W1 W; j) `# a, F) z" s

0 T, ?3 F( U5 W" ?, D8 G8 w%单极性波形的最后结果
3 h/ K% f% t0 l( y; J5 T9 W; xyt1      = zeros(1,N*N_sample-1);      8 ~" e% k/ V  f  M7 \3 \
yt2      = zeros(1,N*N_sample-1);
  a2 l' `" a  a; B" b2 n& O% Qyt3      = zeros(1,N*N_sample-1);
6 E1 b6 c! O: J* ~1 e2 {( v" Efor i = 1:N
$ n" ]% _6 p) x5 K- x/ b1 w0 ?    if random_code(i) == 1                             %得到波形图. ~9 Q3 K3 F# Y* X/ X
        yt1((i-1)*N_sample+1:i*N_sample) = gt1;        %单极性不归零NRZ波形
1 E2 z4 z* Q$ J+ U' a, a0 p  r        yt2((i-1)*N_sample+1:i*N_sample) = gt2;        %单极性归零RZ波形$ H; ?' F+ r( \7 j
        yt3((i-1)*N_sample+1:i*N_sample) = gt3;        %双极性sinc波形
9 \* V! ^7 q* \+ T1 x& ^1 |8 H    else
, d" S: U2 ?$ C5 y        yt1((i-1)*N_sample+1:i*N_sample) = gt0;        %没有这一行会经常报错
) _8 n' Y8 Y9 D: r) o& O9 K; ?: J        yt2((i-1)*N_sample+1:i*N_sample) = gt0;9 E' k) e% P, B6 _4 _) j
        yt3((i-1)*N_sample+1:i*N_sample) = (-1)*gt3;
/ m$ q' s: s6 P5 s8 b    end
! g) p; D- ]5 ^: |: L, Rend: \* o  {$ K8 Z8 s6 W* Q
# ^! E( O1 w& F1 o' f$ Y) X
%*********************************************************************) C) g# _7 S1 }5 I; W
%求单极性不归零时域波形于波功率谱密度2 G/ h1 F* v/ r" u
figure(1)
2 D( D# m4 Y$ {. a& R: {subplot(2,1,1);7 a: O2 E0 O7 H
plot(t,yt1,'r');" q  ]- t; h8 Y3 G' R! D2 e
title('单极性不归零NRZ波形');
3 v7 B: `& |. u, G; Wxlabel('时间t/s');
) f, H( b+ x  V9 L( L& Q, @1 @axis([0,20,-0.5,1.5]);                %画单极性不归零NRZ波形信号幅度频谱
1 n/ D4 {# W5 i2 f. [- O# tgrid;
" M5 O& |' E: X8 |7 j5 \) h
' P1 O! M) J7 b: ZFt1 = fft(yt1);
1 V+ `9 [: X. U# l. b( EFt1 = fftshift(Ft1);
- R& {" N4 [0 @4 r& `, T6 c  N# V6 @5 xp   = (Ft1.*conj(Ft1))/N;                    %计算功率谱密度  
' M" I4 f% c; m" r  K( E% c  `ff1 = (-length(Ft1)/2:length(Ft1)/2-1)/10;
! F0 o! w0 N! @* B" c% |$ ]$ lPf1 = 10*log10(p);. {2 N# @6 ?5 A2 q7 G: b
for i = 1:80# K+ {* m: l/ a+ X2 J
    Pf1(i*100 + 1) = Pf1(i*10);6 e% p% R( D/ i9 R& F7 S
end
0 b4 [' P( u3 f1 i7 D# Rsubplot(2,1,2);) s$ \  }1 n! I8 i; |- S# g* A
plot(ff1,Pf1);- F2 S$ v+ b, N8 _2 Y
axis([-50,50,-50,50]);               %画出单极性不归零NRZ波形功率谱密度
" O9 u0 b: q7 q' C6 s* Ngrid;
, c# {& s, ^* Y8 D" x# C%*********************************************************************5 }6 t/ [' C+ P+ l  M' |( J- J

% K7 W" _# T3 V%*********************************************************************
) h- g% |+ A+ B3 ^9 l' ^%求单极性归零时域波形与波功率谱密度
8 i' v6 V% R! `( l+ Bfigure(2)
; A9 b& Z! N% F8 j8 ?0 f: Dsubplot(2,1,1);
" z; f6 J9 y) j, P: j5 dplot(t,yt2,'r');
' M6 Q: n& _; Q) @title('单极性归零RZ波形');' d3 X( a4 K% e, n. A0 ~) L- C
xlabel('时间t/s');, J" x' |" Q; \0 \8 z
axis([0,20,-0.5,1.5]);              %画出单极性归零RZ波形功率谱密度/ R" \6 W6 p: k3 S0 q& W
grid;
; S5 p% B' T# ~$ C' ?+ S+ y; B4 A9 g" Q. G+ S
Ft2  = fft(yt2);& U; a; R5 O7 @. y+ l3 ~5 Z
Ft2 = fftshift(Ft2);( P+ H, X2 [% B4 A
p2   = (Ft2.*conj(Ft2))/N;                 %计算功率谱密度  
! m2 F7 n" S; H& w, H0 Off2  = (-length(Ft2)/2:length(Ft2)/2-1)/10;) ~) Q/ c, ?" [0 g: x7 \( N
Pf2  = 10*log10(p2);" \3 a1 a% n- D0 u: I2 I
for i = 1:80$ |# c+ Z# F4 n
    Pf2(i*100 + 1) = Pf1(i*10);' y: _6 f4 J5 B' f$ [! M0 t
end) n; m# {2 l) @( X$ @7 {  k
subplot(2,1,2);! {; r: ?  c( @( Y7 p5 N1 z, @6 n
plot(ff2,Pf2);
2 x' d5 i" V3 Taxis([-50,50,-50,50]);             %画出单极性不归零NRZ波形功率谱密度
& p; @) C) k" k% q* W3 qgrid;. m# F0 O2 n) g
%*********************************************************************
! B4 s/ d+ j9 z% F- ?
& _; Y, e* K) ?%*********************************************************************; w3 k8 v7 ?+ N/ D
%求双极性sinc波形时域波形与功率谱密度2 T  p+ {: V) F$ [- B: i6 P$ u& l
figure(3)
4 V7 L9 S$ z. U; u7 T6 Tsubplot(2,1,1);9 w* C* d0 S1 d( S) ~/ W% x+ ^! s1 m
plot(t,yt3,'r');
5 m$ |/ A5 S! A  btitle('双极性sinc波形');0 b4 _  @- M4 \9 j3 G  D
xlabel('时间t/s');7 F6 G* U7 T) f) r
axis([0,20,-1.5,1.5]);              %画出双极性sinc波形功率谱密度+ f) k) H2 {& d2 c+ J/ X9 X, `3 P8 w
grid;
6 m( B2 s4 B# h9 I- u) ^4 I- V0 P3 N5 ]( F# }" x: ~+ D
Ft3 = fft(yt3);
& x9 {6 l+ e. c- u7 qFt3 = fftshift(Ft3);
( _6 A8 g# F0 K4 k$ _8 mp3   = (Ft3.*conj(Ft3))/20;               %计算功率谱密度    [6 [; g7 ?2 c! n4 x, p; |
ff3  = (-length(Ft3)/2:length(Ft3)/2-1)/10;  ~1 ~, l5 g5 A* j( }" z# h
Pf3  = 10*log10(p3);
; G% F3 K  Q& p- n3 Bsubplot(2,1,2);" j3 o) r# \  k2 W+ Y: ?7 m
plot(ff3,Pf3(1:length(Ft3)));
) C5 Y& [' L. |' I) a( l- O0 J+ `axis([-50,50,-50,60]);             %画出单极性不归零NRZ波形功率谱密度
" Z9 g' T& ], [0 F5 [grid;
# A8 ?% n/ e! t, D1 T5 q( G' ?%**************************
  • 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-10-7 04:01 , Processed in 0.125000 second(s), 24 queries , Gzip On.

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

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

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