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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
》这一题的重点就是首先把码元表示出来,这里我是使用了randi([0,1],1,N);
8 P" I: G8 u( w3 m/ A2 u6 v/ q; X& a7 c
随机生成了0或者1,生产了N个随机数。
, G8 F. @) j& T/ f
* ?" _- k; b! ]- c4 h1 Z' U》接着表示基本码元,这里的是单极性不归零NRZ码元,所以gt1= ones(1,N_sample);%不归零。之后就应用基本码元函数来生成所需要的最后的序列。
# X% w7 Y+ }, d3 J  G) q" _. ~4 Q+ l8 T
》再根据所生成的每一个码元把基本码元添加到里面。
" V3 b" X% x8 c5 F/ s/ ]- w! }; S% R. a9 i/ d. j% p! E) x
yt1((i-1)*N_sample+1:i*N_sample) = gt1;  9 @) b0 L: j5 e' [" M: f' @: f$ v
) W2 ?  s6 `/ U3 H- j
》最后利用快速傅里叶变换fft得到频谱,再用conj求出共轭这就相当于求了频谱模的平方。接着除以时间N就可以得到功率谱。/ \# K! ]0 l5 K& w

; ?% F$ R9 l1 G5 Y6 t; ?# o% Y》在生成的图我们会发现有许多的冲激,那么你就可以看看这些冲击都是在哪一些位置,试着去掉着一些冲激。
5 R+ P5 J, T/ Q3 }/ x$ K* V% s/ ?7 U( U- m( `/ {
for i = 1:80  0 L. h6 ~" D+ K) n+ {2 g$ v. p
/ @  Z) N' m: F! C3 I
     Pf1(i*100 + 1) = Pf1(i*10);6 n  x# Y; z0 _1 R

# `# i. d) \: bend9 }: p' q9 T: s$ c) o

/ C# _. |* x9 `- H- P! H要生成别的码元表示只要稍微修改即可。
8 o% i7 L9 N2 _2 F" C
- E/ [3 e3 i1 [* O) g最后参考代码是:(图的显示的时候要多运行几次,最后效果才出来)6 K* h: F- L6 |9 W( d/ `2 p

5 v  h  ]) t/ b' j* p3 T  f$ Y4 ]% communication principle9 n( x! g* @! W" s) r7 w
% Lab 6 problem 1
/ U/ Y9 L8 b9 y1 ]7 Jfunction single_polar_code4 ]2 J8 y% Q' V3 ~$ A+ _
clear all;
, }0 Q  i3 u( jformat long;
5 u5 y; J% q) I( STs       = 1;                %码元周期
) W+ ~' [' C5 m0 g' B* w/ d! qN_sample = 128;              %每个码元抽样点数
/ j  \& h) u: h: `dt       = Ts/N_sample;      %抽样的时间间隔
, X! I! z* M* jN        = 100;               %码元数
! u0 p: }* C1 M6 ut        = 0: dt: (N*N_sample-1)*dt;
" I3 o3 P& ]; g- J7 I% 基本码元 g(t) = 1( i/ K! C( v- H% I9 S. m
gt1      = ones(1,N_sample);                          %不归零
8 o& _' y2 A# A( t8 r0 @gt2      = [ones(1,N_sample/2),zeros(1,N_sample/2)];  %归零,占空比为0.5
6 j9 V' l. w# K1 mgt3      = sinc(2*t(1:N_sample)/Ts);                  %sin(2*pi*t(1:N_sample)/Ts)/(2*pi*(1:N_sample)/Ts)0 U+ K$ w3 r, G4 ]
gt0      = zeros(1,N_sample);# H( q; L7 d* D( K& u1 Z  i, R! C

; J3 j: @4 A5 B& P%生成随机码元) b* z. u" g$ t+ T& T, ]6 t$ j
random_code = randi([0,1],1,N);5 A8 W5 j! X! h

1 h5 Y' b) m$ ~2 A4 |5 v, u) u%单极性波形的最后结果% @0 T6 v& [% M9 T& ^" Z, z
yt1      = zeros(1,N*N_sample-1);      
9 N: h; P3 w2 }; Yyt2      = zeros(1,N*N_sample-1);
/ Z! y6 H9 H" c/ _8 ?; x# u9 Z9 }yt3      = zeros(1,N*N_sample-1);
8 [# P6 Y/ c3 S% J$ A7 R+ afor i = 1:N
$ ~, [* Z1 a- S# W' z    if random_code(i) == 1                             %得到波形图4 R; ?1 t8 S, t! O$ o
        yt1((i-1)*N_sample+1:i*N_sample) = gt1;        %单极性不归零NRZ波形
" E" }+ y' w  Q7 v+ U        yt2((i-1)*N_sample+1:i*N_sample) = gt2;        %单极性归零RZ波形0 P$ K8 u) r$ l0 T! C, |* L4 W8 f
        yt3((i-1)*N_sample+1:i*N_sample) = gt3;        %双极性sinc波形
. H$ ]" f9 b7 p4 m1 ]    else( z0 ]3 W0 d5 r3 x0 p# l9 e
        yt1((i-1)*N_sample+1:i*N_sample) = gt0;        %没有这一行会经常报错0 h$ @4 x, T: u
        yt2((i-1)*N_sample+1:i*N_sample) = gt0;$ k. l4 m7 _2 v/ p
        yt3((i-1)*N_sample+1:i*N_sample) = (-1)*gt3;
  u5 g' ]: E3 {8 }1 z    end
0 k  W$ W! g" D+ b( L4 ]9 oend
0 o; p; R7 B. {2 U) I5 l
! U) G7 r+ B! h%*********************************************************************
/ N' p. ~4 [; J%求单极性不归零时域波形于波功率谱密度
- q1 [7 x, k) Q) c$ Wfigure(1)# r* e1 d! a* y1 ?
subplot(2,1,1);
7 E. L$ g# \% c! dplot(t,yt1,'r');
  ]! O8 t! u  Z3 Htitle('单极性不归零NRZ波形');
3 B5 @0 D! D3 C" k, ~( H, {xlabel('时间t/s');/ a- Y. I5 Y' ?* A
axis([0,20,-0.5,1.5]);                %画单极性不归零NRZ波形信号幅度频谱
7 W7 [1 Q& C/ J4 n3 |* q; Bgrid;
0 `: t3 n) C* I+ U8 G& e* U6 {2 I8 z
Ft1 = fft(yt1);! P5 i9 y  o8 {* I0 K* K! J9 k
Ft1 = fftshift(Ft1);" r' w4 h3 A: ]
p   = (Ft1.*conj(Ft1))/N;                    %计算功率谱密度  9 j2 Z( S6 C+ f' k, B8 h
ff1 = (-length(Ft1)/2:length(Ft1)/2-1)/10;
7 w1 @6 [- L8 a& IPf1 = 10*log10(p);
# G- {- D2 c" n: f. S: u- ]  ofor i = 1:80
' c! s- A! L6 ?    Pf1(i*100 + 1) = Pf1(i*10);1 L3 [1 B0 I- R' t4 B: D5 @- U
end
* Q2 v3 C$ {2 d! t$ Lsubplot(2,1,2);7 d) f! e* f# w- {  I
plot(ff1,Pf1);
8 x4 f# I8 z  Caxis([-50,50,-50,50]);               %画出单极性不归零NRZ波形功率谱密度" ~6 B; Q" ^8 g# p/ S8 {% u
grid;
; ~  }+ V0 [  q. x, p+ r%*********************************************************************
6 c, R' ~6 a6 {' _/ x& P! p6 d5 ?* _7 q% J, |( k  s* \( M
%*********************************************************************
$ l1 Y( `4 h/ f$ r6 m/ m8 ^%求单极性归零时域波形与波功率谱密度9 }) x" V$ r9 _8 i# l
figure(2)" k( D, ~& `$ k! D1 ]
subplot(2,1,1);
! l* k- C& g- ~1 Y( Dplot(t,yt2,'r');) x; [: |8 m# Z0 ?4 T" M2 k$ v
title('单极性归零RZ波形');
( K1 y4 {% b5 c% E5 P4 i! xxlabel('时间t/s');
7 \& u2 u6 g9 Z( \! x) ?. _" Y- Laxis([0,20,-0.5,1.5]);              %画出单极性归零RZ波形功率谱密度
0 K- F4 E8 W" h% N# m7 R% kgrid;* ~. K# p) ]0 P8 ~
, r$ ^8 ^/ a: ~1 C- N4 P# U$ l
Ft2  = fft(yt2);0 i5 N8 M1 ^) m" a
Ft2 = fftshift(Ft2);
4 D5 x2 z  t: E. g/ V' w8 Sp2   = (Ft2.*conj(Ft2))/N;                 %计算功率谱密度  
3 Z! L3 @6 k5 U3 {0 Z5 G% m. aff2  = (-length(Ft2)/2:length(Ft2)/2-1)/10;9 w7 |  s$ Z. f' U' U
Pf2  = 10*log10(p2);
5 J1 `! J5 e- W' c6 K& u' h; nfor i = 1:80. f3 `1 p& z$ I$ y5 o% E
    Pf2(i*100 + 1) = Pf1(i*10);
) p6 J! m& e( _end
" C, L2 \8 Q2 I, W6 K' T; lsubplot(2,1,2);! l& p" Z/ _& G( K- J
plot(ff2,Pf2);
+ Q( R# x  `$ O! `% Zaxis([-50,50,-50,50]);             %画出单极性不归零NRZ波形功率谱密度
9 c7 S8 C+ L3 ?  G& G4 j6 Egrid;. U2 F, ^5 j( \
%*********************************************************************
. g# x" q- i% D2 D- l/ T, E% p- X9 @7 j) n
%*********************************************************************: a& ^* L% H. |8 \" |, E4 |6 e3 }
%求双极性sinc波形时域波形与功率谱密度# T& g; i6 [6 [5 W' V: e
figure(3)# a1 T2 G* ?" t; Z9 `8 j, n( y
subplot(2,1,1);
5 V: @3 }2 _9 T# _plot(t,yt3,'r');$ ]( b4 O- l. }1 x* |; D3 q
title('双极性sinc波形');
7 ^. A, g; J( j8 |0 y" @xlabel('时间t/s');1 Y4 q+ x0 E# q& T7 p
axis([0,20,-1.5,1.5]);              %画出双极性sinc波形功率谱密度
7 i* L2 {7 U5 `0 R) m" Q7 Xgrid;
" P8 N' A- T/ N4 _
) m$ I  d. h3 L; Z3 B+ qFt3 = fft(yt3);, N  b2 j7 h) Y/ ?: [- {/ t
Ft3 = fftshift(Ft3);' Z. E! q/ t8 o& l' P2 X% H
p3   = (Ft3.*conj(Ft3))/20;               %计算功率谱密度  + B* [. q' _' o2 J6 L1 d( R  Y
ff3  = (-length(Ft3)/2:length(Ft3)/2-1)/10;
0 X% r2 L3 W$ i3 f7 P: P' ~Pf3  = 10*log10(p3);
0 U3 Z( P( C9 tsubplot(2,1,2);
. R9 c1 s# c4 W- Rplot(ff3,Pf3(1:length(Ft3)));0 M3 d1 L+ w0 _' ~6 f
axis([-50,50,-50,60]);             %画出单极性不归零NRZ波形功率谱密度6 t+ L8 h; y* }6 Q& J% q% w4 o% ~: J8 S
grid;: e. }9 V: _! M; `
%**************************
  • 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-1 18:32 , Processed in 0.140625 second(s), 24 queries , Gzip On.

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

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

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