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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
》这一题的重点就是首先把码元表示出来,这里我是使用了randi([0,1],1,N);
" W: h4 |' V8 W2 ]% U) {+ s4 n: O+ ?0 ], y1 s3 N# Y- l. t
随机生成了0或者1,生产了N个随机数。
( y. x  i: K: G9 f  R) g- ]
8 n# L: i. _: V  l1 \》接着表示基本码元,这里的是单极性不归零NRZ码元,所以gt1= ones(1,N_sample);%不归零。之后就应用基本码元函数来生成所需要的最后的序列。
# v" V" `1 d5 {% w) ^5 _$ H% z, u/ Q3 Y( ~! o& z0 p# E% {' N
》再根据所生成的每一个码元把基本码元添加到里面。/ j  k# H" E4 M6 c& h0 l6 S
7 a9 e- U4 N0 c7 @5 C
yt1((i-1)*N_sample+1:i*N_sample) = gt1;  4 F' `  Q9 L& C" \/ `: S

* t% B; l- R# c9 }$ |) D》最后利用快速傅里叶变换fft得到频谱,再用conj求出共轭这就相当于求了频谱模的平方。接着除以时间N就可以得到功率谱。
' Y3 j0 r5 d7 Q8 r9 b( V3 u6 _; S$ Q7 _+ K6 d
》在生成的图我们会发现有许多的冲激,那么你就可以看看这些冲击都是在哪一些位置,试着去掉着一些冲激。
3 {# x) y) n9 {& d) A1 J: F) ]; }0 O0 a, D5 o' v
for i = 1:80  * X1 ?8 L0 d8 |

5 y+ }# C$ J" r" e, Y# K8 q     Pf1(i*100 + 1) = Pf1(i*10);
/ s7 B' h$ I2 x2 a! K$ [) ]( j5 y9 b2 t# O* b2 w8 r) T
end$ u1 u# ~0 r, i4 B8 B9 e& ?
( E  v( E4 _2 z& h
要生成别的码元表示只要稍微修改即可。
: z/ ~7 o9 h2 t0 G
  m& p6 @1 e8 Q) k8 u% ~; |) _最后参考代码是:(图的显示的时候要多运行几次,最后效果才出来)
9 {8 r! T2 z5 X3 n" y; _1 ?( m
; F# V9 `" G* l9 k& w% communication principle
: Z! @  o$ o! N: o% Lab 6 problem 10 }3 k& D7 i% h9 V
function single_polar_code' @. ^! l! ?2 j: T0 w* G8 a
clear all;5 I3 H3 ]# x  @+ D
format long;# T" a1 f# ]5 x# m0 y0 F' O+ H) `2 y
Ts       = 1;                %码元周期
* ]8 g, T: i4 t6 D# w8 _N_sample = 128;              %每个码元抽样点数) {6 A  x* i* ?7 \" ^7 W  L
dt       = Ts/N_sample;      %抽样的时间间隔0 ?, m' o: f5 r5 W9 f% P+ [( r
N        = 100;               %码元数
# P: t8 v0 m" {) X4 _/ e! v/ At        = 0: dt: (N*N_sample-1)*dt;/ T" F1 E4 \7 q$ U, B. Y4 h
% 基本码元 g(t) = 1) n+ [' d( n( r
gt1      = ones(1,N_sample);                          %不归零3 f5 @! O2 P4 R. w0 @
gt2      = [ones(1,N_sample/2),zeros(1,N_sample/2)];  %归零,占空比为0.5  ~8 f" t: ^- D* A. b4 o
gt3      = sinc(2*t(1:N_sample)/Ts);                  %sin(2*pi*t(1:N_sample)/Ts)/(2*pi*(1:N_sample)/Ts)
$ }0 P6 ~; U- d' {9 Ogt0      = zeros(1,N_sample);6 f1 A$ m/ Y  [3 \# e4 }5 c

2 ~4 N2 m2 e, ]- |/ R8 ?% e5 V7 H%生成随机码元
0 j2 c- m% m3 |: X! }random_code = randi([0,1],1,N);
7 j- J3 g4 W$ b2 n* G% h& m) `  A, O; B; N; P* N! ]( `1 g6 U
%单极性波形的最后结果0 N( |1 u0 M1 H: ]' @8 ]3 o
yt1      = zeros(1,N*N_sample-1);      
( V2 A* b# P; |( Zyt2      = zeros(1,N*N_sample-1);
0 Q& b$ `$ x% Q, Z# ^8 z5 c% x0 _yt3      = zeros(1,N*N_sample-1);9 J) E, P- i( g( j
for i = 1:N
% W/ ]* B! T6 y6 T) J- A, c! @    if random_code(i) == 1                             %得到波形图  b8 b3 C: v$ f
        yt1((i-1)*N_sample+1:i*N_sample) = gt1;        %单极性不归零NRZ波形
$ ?: G6 l: w: r( r; F. m        yt2((i-1)*N_sample+1:i*N_sample) = gt2;        %单极性归零RZ波形
! q. t7 ?* c2 z# Q% V$ r        yt3((i-1)*N_sample+1:i*N_sample) = gt3;        %双极性sinc波形
, i( V! Y& Q2 \% l! j    else
  @, r3 P6 J/ b2 c6 u6 J1 P8 m6 r        yt1((i-1)*N_sample+1:i*N_sample) = gt0;        %没有这一行会经常报错
# z) V9 Z2 [. B1 ?8 [        yt2((i-1)*N_sample+1:i*N_sample) = gt0;
/ }$ x; d. s7 o8 s; m6 \        yt3((i-1)*N_sample+1:i*N_sample) = (-1)*gt3;/ c1 F# \/ _3 o7 L5 ^- @
    end
; ~) V! w# W5 v+ R. `end, u2 h2 _1 D$ k4 [7 Q$ w

0 a" U- j: D- t# k%*********************************************************************
1 ]9 w7 q, G! }%求单极性不归零时域波形于波功率谱密度# w% O. B$ P/ K$ ^& H
figure(1)
. u& W- E& n, y) Gsubplot(2,1,1);
6 p6 S5 M5 R. ^$ Bplot(t,yt1,'r');
4 G6 q+ \" `* U6 ytitle('单极性不归零NRZ波形');! R: T% q* A; }
xlabel('时间t/s');
7 ?+ r. i+ }: q. a7 uaxis([0,20,-0.5,1.5]);                %画单极性不归零NRZ波形信号幅度频谱
; Z9 q) L( z, A8 `grid;
2 T' S" ?8 ~  n' ]  }  k% R/ q& D# j( s! p
; z& ]2 u0 r* `7 p/ k4 IFt1 = fft(yt1);
# p- }7 }6 [" o: NFt1 = fftshift(Ft1);2 Y# }( d& N5 O6 m6 i
p   = (Ft1.*conj(Ft1))/N;                    %计算功率谱密度  + Y* |) q8 Z2 ^8 R
ff1 = (-length(Ft1)/2:length(Ft1)/2-1)/10;
* ^& E* |2 m  ?! NPf1 = 10*log10(p);* D8 b5 H. \- s8 H7 x2 Z
for i = 1:80; \5 ^  l* w& m2 d6 @! M
    Pf1(i*100 + 1) = Pf1(i*10);
8 ~2 c4 ^# ]. j  Wend+ g8 M' z! _1 K5 `# b0 V, A% A
subplot(2,1,2);' e) z) r$ o  _% g1 F* T( W. \5 x
plot(ff1,Pf1);
( n6 g3 y1 O! }) Yaxis([-50,50,-50,50]);               %画出单极性不归零NRZ波形功率谱密度
2 [1 q7 I9 o" x$ ~grid;
! G5 ?8 ~6 |7 F2 Y$ v- j%*********************************************************************1 M7 A% ~/ U, B% a3 l, o8 ]
. X! Y, E+ G8 L" x4 X
%*********************************************************************0 W$ ~3 [3 ^3 g+ {2 b- U
%求单极性归零时域波形与波功率谱密度
  |% ?. ^, j1 K: O) g' s' ~& o4 S5 gfigure(2); ]: X- ]' E! D/ o2 Z- J3 H
subplot(2,1,1);/ _8 {% n6 x: a# p& d4 K
plot(t,yt2,'r');; s- ~; A* {  o! i, G3 y5 _
title('单极性归零RZ波形');
! _7 Z& m4 w5 K3 t% M/ L0 Rxlabel('时间t/s');0 Q& v0 I" S: J$ {
axis([0,20,-0.5,1.5]);              %画出单极性归零RZ波形功率谱密度
) _* ^! }1 Y  {, }grid;
( h4 w; i  _9 D" K+ f) \! i/ [) I2 P6 E2 t, R) h& U
Ft2  = fft(yt2);
1 v+ {; [+ E% [, JFt2 = fftshift(Ft2);
8 Z4 H; x8 C" M6 n4 Mp2   = (Ft2.*conj(Ft2))/N;                 %计算功率谱密度  
( o/ a! z2 c4 j( t" \ff2  = (-length(Ft2)/2:length(Ft2)/2-1)/10;2 B. I8 O) {: O2 B- e, l' A1 E
Pf2  = 10*log10(p2);
; [6 ]+ J7 Z; r5 rfor i = 1:80
7 @& \) x' W1 @! s  c6 ?    Pf2(i*100 + 1) = Pf1(i*10);
+ B4 P8 q! y7 V$ u1 N& Pend
: O' d9 S( Y) x! b$ I6 @1 k: X5 x* Asubplot(2,1,2);
, A) S* j) S- |plot(ff2,Pf2);: V. y  I4 P3 ^4 b
axis([-50,50,-50,50]);             %画出单极性不归零NRZ波形功率谱密度; f. N" B3 K! {" x4 m1 K% S
grid;
/ i* x; b; f4 O! Q%*********************************************************************" k& }0 Y- g( l/ j# X* \

* \% s$ C, U6 }  b2 c%*********************************************************************/ g3 a$ Z8 v, W
%求双极性sinc波形时域波形与功率谱密度( G8 g8 J+ v% B: k( Y1 k; U- T  _' h9 Q
figure(3)
1 X3 i  c5 p! y1 V% R) msubplot(2,1,1);
0 k+ f7 A; h( n/ Kplot(t,yt3,'r');; S) D0 N5 T. |( c
title('双极性sinc波形');8 }# F- ~* x% F
xlabel('时间t/s');
! B( ^# U0 R7 i: Q0 kaxis([0,20,-1.5,1.5]);              %画出双极性sinc波形功率谱密度
* v0 A& ~  {2 E. A! Cgrid;
. S! P* ^+ I* h) W6 q8 l# _4 S
4 a) _/ ~' Z7 K4 U/ mFt3 = fft(yt3);6 G% R3 M; q5 o, N8 s" L, j8 B0 F
Ft3 = fftshift(Ft3);6 X$ G& n1 p) J) V) u
p3   = (Ft3.*conj(Ft3))/20;               %计算功率谱密度  - V& g( s0 a- G  {* J# j
ff3  = (-length(Ft3)/2:length(Ft3)/2-1)/10;4 v1 a. M* e7 Y  q/ S
Pf3  = 10*log10(p3);
7 s2 d- q6 [6 M. h1 K* K$ Esubplot(2,1,2);
( m$ N  Q3 ], ^/ |! iplot(ff3,Pf3(1:length(Ft3)));* y' f5 h1 V* O# l/ c% Y3 ]) [1 A+ x# {# X
axis([-50,50,-50,60]);             %画出单极性不归零NRZ波形功率谱密度/ t3 r8 z1 v1 \' c; ~
grid;
/ [5 b8 `, b% i4 j%**************************
  • 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-8-12 08:14 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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