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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
》这一题的重点就是首先把码元表示出来,这里我是使用了randi([0,1],1,N);8 S9 h0 i& t: U

6 K6 O; Z; t0 C: Z随机生成了0或者1,生产了N个随机数。
+ A+ F5 e; d2 Z7 y3 t5 O; {) i5 k4 c+ E; r5 F' R0 g5 A- v
》接着表示基本码元,这里的是单极性不归零NRZ码元,所以gt1= ones(1,N_sample);%不归零。之后就应用基本码元函数来生成所需要的最后的序列。( g& b( t$ m5 u% Y
" |3 F. ~8 b; C) S2 x' j8 n' H- I8 O
》再根据所生成的每一个码元把基本码元添加到里面。
& A* ^3 Q* B  a( `% V, [2 L$ P6 u0 q  ?2 G4 y; M
yt1((i-1)*N_sample+1:i*N_sample) = gt1;  - {' q5 q, ~% W3 O3 A) t+ U

$ F: @3 L9 X  V6 r: k1 b2 _》最后利用快速傅里叶变换fft得到频谱,再用conj求出共轭这就相当于求了频谱模的平方。接着除以时间N就可以得到功率谱。
2 y0 U5 H5 D3 h% {& ~7 ]2 n
3 L: ]; O4 E! M, F  I》在生成的图我们会发现有许多的冲激,那么你就可以看看这些冲击都是在哪一些位置,试着去掉着一些冲激。. i+ {* {' a0 l- ]4 B* g' i5 ]
- ^3 X6 M% J. z- R
for i = 1:80  & a: x: J9 d# v2 F& x
1 W: v1 T: Q& b. s; `  S9 f5 h# [
     Pf1(i*100 + 1) = Pf1(i*10);
) K6 Z: x8 x1 `9 Q; {9 z% L9 y  g5 Z3 d0 O
end
" ^. X7 w- b0 L' ]
! L% B% e& y, d1 X% Y要生成别的码元表示只要稍微修改即可。
) w( q, J4 z% Z8 Y' x  K4 c  y9 [2 W0 r: ]
最后参考代码是:(图的显示的时候要多运行几次,最后效果才出来)
* C) }& X$ a2 C0 h8 D/ P
+ Q9 E& ^- d$ T, P1 I( ]9 k! K% communication principle
2 A# ?7 ^, l5 d6 W. ~4 p0 f: O3 o! K% Lab 6 problem 15 b1 b9 J7 n, m$ y
function single_polar_code& [# A* x; b5 S5 h, y4 [( b. ^
clear all;
$ e' U3 i. F8 x8 ]; uformat long;) h( I/ \- d, g1 R! L: ]
Ts       = 1;                %码元周期+ R. f8 @) Y6 w+ b# v
N_sample = 128;              %每个码元抽样点数: u; f" U  c5 L; R5 w9 p
dt       = Ts/N_sample;      %抽样的时间间隔
1 d# l# R9 Y8 ~9 VN        = 100;               %码元数
  ~: i+ g' v2 P2 @' R/ `% @' u1 Zt        = 0: dt: (N*N_sample-1)*dt;
6 q$ c$ v1 n& B! }$ c% 基本码元 g(t) = 1" W0 J. V+ e7 w9 N6 P4 p
gt1      = ones(1,N_sample);                          %不归零
) H7 [/ N/ y. wgt2      = [ones(1,N_sample/2),zeros(1,N_sample/2)];  %归零,占空比为0.5% ~* z  f. ~5 Z  W3 [
gt3      = sinc(2*t(1:N_sample)/Ts);                  %sin(2*pi*t(1:N_sample)/Ts)/(2*pi*(1:N_sample)/Ts)5 K0 ]* D7 R, e  C/ y
gt0      = zeros(1,N_sample);, y7 s7 o0 Q* W  J6 d* x+ n7 G( z
" e0 j! z# ]0 B5 y, O
%生成随机码元
8 {0 t  A1 _9 Q" W0 _; {5 qrandom_code = randi([0,1],1,N);
9 f5 t5 O6 R: J; P2 b* n) C* L
* b2 ~! _' y! ]7 a9 x%单极性波形的最后结果
7 E+ Q" R5 r5 v. Z- l' ]1 `1 Jyt1      = zeros(1,N*N_sample-1);      
+ F- Y, v( u$ p0 Myt2      = zeros(1,N*N_sample-1);5 k3 v; j: ^- b0 y0 z7 Q
yt3      = zeros(1,N*N_sample-1);
+ H8 Q( g& g, r, }, `5 i9 Tfor i = 1:N8 Y* c5 T* A9 \7 M. F
    if random_code(i) == 1                             %得到波形图
, a7 r: x9 `; Z* D& n        yt1((i-1)*N_sample+1:i*N_sample) = gt1;        %单极性不归零NRZ波形
1 S  e% H7 d- o3 b1 y        yt2((i-1)*N_sample+1:i*N_sample) = gt2;        %单极性归零RZ波形
0 z+ e+ f8 F2 }! _* ^0 l$ R, z        yt3((i-1)*N_sample+1:i*N_sample) = gt3;        %双极性sinc波形8 Y5 m" R4 U& J6 G. k
    else* U6 U. i; L; T9 q
        yt1((i-1)*N_sample+1:i*N_sample) = gt0;        %没有这一行会经常报错
1 j3 p. T; w, x% c: d% n* y        yt2((i-1)*N_sample+1:i*N_sample) = gt0;
  S" ^$ `7 E1 t0 M/ M& y( a        yt3((i-1)*N_sample+1:i*N_sample) = (-1)*gt3;
$ W8 S# n. Q0 G3 u2 J    end5 O7 i! P  d2 L$ H$ M
end
( d% P0 f, q; L9 D% T/ f
# ]6 x. G) Z) k( c. ~%*********************************************************************
8 q% X: R( X0 p$ s  ^%求单极性不归零时域波形于波功率谱密度
. }( t8 a# r- w+ N6 {6 Jfigure(1)
; X/ g  g1 @# q- M& jsubplot(2,1,1);9 ]9 S6 `: j/ [
plot(t,yt1,'r');
& ~: @  f% X1 e5 i' \7 Z0 Q' }title('单极性不归零NRZ波形');
! l% L$ [* a$ M4 J) Qxlabel('时间t/s');
5 Z! j. C/ l6 S- y) Iaxis([0,20,-0.5,1.5]);                %画单极性不归零NRZ波形信号幅度频谱
, \' P' o* U7 z, Z, {grid;3 W( n) B7 t# ^( W+ q8 `
; B, f( U5 c# t3 `. l& K
Ft1 = fft(yt1);" g, F/ R+ _1 K" X) Z$ q8 {0 d+ `
Ft1 = fftshift(Ft1);
# p9 p3 ~. D' @7 a0 Jp   = (Ft1.*conj(Ft1))/N;                    %计算功率谱密度  ' t6 g2 U' l5 E/ h2 v, l+ B
ff1 = (-length(Ft1)/2:length(Ft1)/2-1)/10;  {2 V' F2 y2 w  _2 _' L& l9 N5 M
Pf1 = 10*log10(p);4 y6 m: L7 s7 o- F% f1 `
for i = 1:80, L0 U( ^/ B: _5 m$ r: a
    Pf1(i*100 + 1) = Pf1(i*10);
% ~- I: {& D8 j3 M; Jend/ M) y; h3 @2 z* j6 F( D
subplot(2,1,2);
. f4 h. ~' a/ w6 M* Lplot(ff1,Pf1);
1 t& R4 Q: l$ @# d1 P. O! v1 l; Yaxis([-50,50,-50,50]);               %画出单极性不归零NRZ波形功率谱密度& Z: u& r: o- g2 r7 Y9 b
grid;
. E) K+ [0 i$ O6 e%*********************************************************************. p1 W5 Y0 i# m0 `
- Q0 x1 _: P1 c
%*********************************************************************' L, f4 M0 |& F$ ^1 C
%求单极性归零时域波形与波功率谱密度
" A% C* |4 o7 B# a6 Efigure(2)6 Y$ I1 f: O1 a2 {$ W
subplot(2,1,1);' {6 _4 E) R! [) V/ q7 D/ a
plot(t,yt2,'r');
4 m6 F1 i. |; e5 btitle('单极性归零RZ波形');
% }# A( O' q' n9 jxlabel('时间t/s');$ G1 [6 P/ I* Y  O
axis([0,20,-0.5,1.5]);              %画出单极性归零RZ波形功率谱密度
8 J; ]! ]8 H, z  t6 ugrid;, D: f# H2 G1 W; V+ i" d8 \2 P1 ]3 a
: `5 C% H& `7 c! r
Ft2  = fft(yt2);
  z4 n* w: c9 AFt2 = fftshift(Ft2);% ^$ L9 O6 n: a
p2   = (Ft2.*conj(Ft2))/N;                 %计算功率谱密度  
' [' |; i' M( \9 a* Q& J" Off2  = (-length(Ft2)/2:length(Ft2)/2-1)/10;9 U1 Q" U7 h0 H
Pf2  = 10*log10(p2);
* T, a3 p  u: m5 C0 }for i = 1:800 a+ I# ]! o# _. q8 d9 m$ _
    Pf2(i*100 + 1) = Pf1(i*10);
0 e6 z0 n$ ?( V3 v- f: l' Wend  s5 o6 z! e1 k* x" ?
subplot(2,1,2);
% f7 G- P4 L, ^2 y4 splot(ff2,Pf2);. {( \6 Q9 K$ {1 Y5 o. H3 X
axis([-50,50,-50,50]);             %画出单极性不归零NRZ波形功率谱密度; ~% H! \8 t8 m$ Z3 x! J
grid;2 a. u7 i, ?( Q& Y
%*********************************************************************
" r5 i# J: u: L. q, S3 a+ ]* _
%*********************************************************************
: v+ D" M1 o' _9 M%求双极性sinc波形时域波形与功率谱密度
( t* o6 @5 X; a* `2 B! V4 \figure(3)
' r6 m( ~8 |. vsubplot(2,1,1);0 [3 t7 A3 d+ k3 |
plot(t,yt3,'r');
/ S. W: m1 O6 I; `4 g6 [- Atitle('双极性sinc波形');% U5 w- W5 e' K
xlabel('时间t/s');
4 a! n( @6 U1 k7 T) Y% c8 @1 i/ Gaxis([0,20,-1.5,1.5]);              %画出双极性sinc波形功率谱密度4 Y# |1 `6 u: w5 M  |
grid;
0 c1 |4 M% O9 g' @3 J2 P5 y8 ~3 K% G$ g) p. }, a& q0 w: y6 \0 \6 ]: v7 R# g
Ft3 = fft(yt3);% [7 @5 y& h1 Y. A7 p
Ft3 = fftshift(Ft3);5 S- h3 a4 p4 ^. ^8 Y( u; J# O- }
p3   = (Ft3.*conj(Ft3))/20;               %计算功率谱密度  
, K& u; W6 u' ~ff3  = (-length(Ft3)/2:length(Ft3)/2-1)/10;
' ~" c% n0 y7 Q% J, J3 M, R2 J( Y* yPf3  = 10*log10(p3);
0 M" K. _% _# }1 e0 Ssubplot(2,1,2);* z4 t0 j) v: z) }; G8 x
plot(ff3,Pf3(1:length(Ft3)));+ P; C7 ^& p/ f7 Q) y/ p/ ]: z8 l
axis([-50,50,-50,60]);             %画出单极性不归零NRZ波形功率谱密度7 C! d5 U( i/ f! b
grid;
, U7 `+ D- T& n%**************************
  • 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-6-22 11:28 , Processed in 0.062500 second(s), 23 queries , Gzip On.

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

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

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