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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
》这一题的重点就是首先把码元表示出来,这里我是使用了randi([0,1],1,N);
! Q4 b, |2 s# u, A
$ [& h; X6 ]7 B9 B$ v随机生成了0或者1,生产了N个随机数。
" O/ @: w0 G4 V* S: W$ O+ _
( L9 X) a9 e1 i" o* S》接着表示基本码元,这里的是单极性不归零NRZ码元,所以gt1= ones(1,N_sample);%不归零。之后就应用基本码元函数来生成所需要的最后的序列。, q; Y6 i) v- M1 w
8 m; l" t* o3 W4 V+ n
》再根据所生成的每一个码元把基本码元添加到里面。
' z4 l( B1 f7 g
) b" k0 V2 k1 y0 {# m4 m: {0 \! wyt1((i-1)*N_sample+1:i*N_sample) = gt1;  
/ I% |# k  @# ]5 N9 \$ h+ _4 C/ s
》最后利用快速傅里叶变换fft得到频谱,再用conj求出共轭这就相当于求了频谱模的平方。接着除以时间N就可以得到功率谱。" S+ b: b7 m& s! e9 m% `. f
5 \. ]% x. S1 }! s- ~+ r
》在生成的图我们会发现有许多的冲激,那么你就可以看看这些冲击都是在哪一些位置,试着去掉着一些冲激。" Y2 \% B( u) r

! n, i5 M8 a. j9 O- p) {, qfor i = 1:80  
; j. I) j! @$ Q, M* ~
$ [( x! Z& n: Y7 C  B9 ~     Pf1(i*100 + 1) = Pf1(i*10);- r7 v  G, a7 w$ |5 D9 V; u

* |4 z4 h/ D/ X* }" eend" e8 s6 _1 D2 l* i
4 p8 @! A4 B: d6 d5 h% G/ w' C
要生成别的码元表示只要稍微修改即可。
0 _2 P; b2 k7 N
/ g% F' R' f7 }& x) L& j+ n最后参考代码是:(图的显示的时候要多运行几次,最后效果才出来)
! O) x1 b5 N! B( A' b1 Y& C  Y; }1 k
% communication principle5 ~" Z" c4 d- @' Q2 _: }
% Lab 6 problem 1
# F$ N3 x4 H2 V; |function single_polar_code
0 T0 e8 y5 d2 A" @6 l5 _' Q% y1 {( x! Pclear all;" u6 ]/ D, C2 d, b) w
format long;
! r8 ]8 m, W; \; ZTs       = 1;                %码元周期; D0 A7 ]3 L# S, g; P
N_sample = 128;              %每个码元抽样点数
, T$ X4 ^7 D5 S5 b3 x0 o4 N9 `; _dt       = Ts/N_sample;      %抽样的时间间隔
' a9 }7 a$ o  {4 D1 c. f+ T# f6 KN        = 100;               %码元数
6 s& k  U4 @1 A4 pt        = 0: dt: (N*N_sample-1)*dt;
0 Z1 N7 V+ q* f' G" r$ h. q8 U% 基本码元 g(t) = 1
  |6 K: x. v. D* M7 f5 B" ~gt1      = ones(1,N_sample);                          %不归零. x3 m, Q+ L5 w- Y
gt2      = [ones(1,N_sample/2),zeros(1,N_sample/2)];  %归零,占空比为0.5
) O5 `* R8 i! {; G, X; Wgt3      = sinc(2*t(1:N_sample)/Ts);                  %sin(2*pi*t(1:N_sample)/Ts)/(2*pi*(1:N_sample)/Ts)! T- J% s2 s: g% D
gt0      = zeros(1,N_sample);
: E& p4 l* j9 P( R
* U) J' `8 w' k: ^  m) w5 A  N) g9 g%生成随机码元
5 C8 [' X, L2 A9 frandom_code = randi([0,1],1,N);9 {1 I& L& r( ?. o' V

6 x/ ~( r' T! B7 I9 w& K%单极性波形的最后结果- p' P. ]6 c9 _9 `4 t
yt1      = zeros(1,N*N_sample-1);      
; D; T3 \5 u9 V/ ~yt2      = zeros(1,N*N_sample-1);9 y7 J8 H1 V* u! D. A* h( Y4 X: _
yt3      = zeros(1,N*N_sample-1);0 C7 p" x- w" R' |
for i = 1:N
. @; ~0 S8 B! N! ?" _$ I- L    if random_code(i) == 1                             %得到波形图' A0 _5 G4 l  h2 x. L  i* w
        yt1((i-1)*N_sample+1:i*N_sample) = gt1;        %单极性不归零NRZ波形) Q6 V" P6 L9 P1 G$ {
        yt2((i-1)*N_sample+1:i*N_sample) = gt2;        %单极性归零RZ波形6 ]  p, E" e; ^0 X' M
        yt3((i-1)*N_sample+1:i*N_sample) = gt3;        %双极性sinc波形
' U. }4 ]2 k& I, G- R8 f    else3 L6 K& I4 @, ~7 x0 t5 ]% D
        yt1((i-1)*N_sample+1:i*N_sample) = gt0;        %没有这一行会经常报错4 L3 N8 a1 e0 R3 F6 f
        yt2((i-1)*N_sample+1:i*N_sample) = gt0;
7 |! p3 n. x/ d! G. w4 g- s        yt3((i-1)*N_sample+1:i*N_sample) = (-1)*gt3;3 {' f- q/ Y6 O4 E( T1 ~$ V- n: v
    end# [1 `. x# Q/ I+ ~( v
end+ N2 z6 C: L8 R

) B$ v4 n4 Z. Q( D%*********************************************************************# M( u) f5 N3 A$ h8 j4 e( q% C
%求单极性不归零时域波形于波功率谱密度. K) ]0 v3 n' a( {" O
figure(1)0 o6 {$ p7 w* h" o. E+ G
subplot(2,1,1);
: ]5 Y1 a/ K% A$ p2 [; pplot(t,yt1,'r');
6 G  q' g& X3 J: {0 l% Vtitle('单极性不归零NRZ波形');
9 r+ E0 k& M% d! W: bxlabel('时间t/s');
: j5 [2 ~3 g$ j0 vaxis([0,20,-0.5,1.5]);                %画单极性不归零NRZ波形信号幅度频谱6 Y! R1 z9 {' j# ^/ N
grid;
! S: K# a5 h$ s+ ~9 d
9 d( \' l# V: F! {5 U! K$ MFt1 = fft(yt1);% f- a! k* v$ P# t# Z: p
Ft1 = fftshift(Ft1);
6 N9 o; k( a  [p   = (Ft1.*conj(Ft1))/N;                    %计算功率谱密度  
& y3 f# j' e( c) ~$ Q3 bff1 = (-length(Ft1)/2:length(Ft1)/2-1)/10;
& C. G+ ^# s3 z: G" t" K9 E9 nPf1 = 10*log10(p);
  M5 C) M: Q6 ?, Y' bfor i = 1:80
6 `' h5 u' k* q6 `( V    Pf1(i*100 + 1) = Pf1(i*10);
3 ~5 }6 g2 k5 H- Xend
2 `  K6 C, H; S% vsubplot(2,1,2);+ N" x7 R: C6 r2 M6 u
plot(ff1,Pf1);
& v% a7 u4 H/ b: `; `, ]' V& X6 ?axis([-50,50,-50,50]);               %画出单极性不归零NRZ波形功率谱密度; ^; h/ O6 D2 v8 o" s: A" w
grid;; C! p: x6 M% s3 [
%*********************************************************************( D/ X' R* y: k, N3 m
8 A2 {5 L* Q" }2 q5 E) D
%*********************************************************************) o) c" @, a; x3 V% z" Y' h
%求单极性归零时域波形与波功率谱密度. P5 {5 V% d8 x- F  K! e8 @1 G
figure(2)
5 z2 A6 r; ?8 G; Q+ W/ O* rsubplot(2,1,1);, n& Q7 c" a' P. M: T
plot(t,yt2,'r');3 U8 \- x- c8 @: X' W) r1 O6 n& `1 T- C
title('单极性归零RZ波形');
! ^, A0 Z3 Z6 N- T- ^3 G, f+ Hxlabel('时间t/s');
! Y, B+ u. k% \axis([0,20,-0.5,1.5]);              %画出单极性归零RZ波形功率谱密度
/ c$ v  J, \9 x' _3 E+ zgrid;
9 h* B1 L2 Q0 t* F- c
+ R0 {! u4 O; [! _) H, N; }Ft2  = fft(yt2);' p& R( G: I6 l6 q( \2 I. z0 [% P
Ft2 = fftshift(Ft2);
& ]$ q3 I" p  G" ?! Jp2   = (Ft2.*conj(Ft2))/N;                 %计算功率谱密度  6 m5 y0 t- E. j) T' L- P; d
ff2  = (-length(Ft2)/2:length(Ft2)/2-1)/10;! |% D+ _( ~( `8 ~$ |
Pf2  = 10*log10(p2);
- T! I( ?' s, }  t8 Ofor i = 1:80
1 \' A5 w# c  H0 u    Pf2(i*100 + 1) = Pf1(i*10);% J7 |, t/ @$ v* C0 s- |
end4 q- }& [2 s* W* w! ]
subplot(2,1,2);8 ~9 H: m( n/ N8 }2 f- |; U
plot(ff2,Pf2);
0 ^8 N8 ]( \1 V( \4 K0 w9 S3 Daxis([-50,50,-50,50]);             %画出单极性不归零NRZ波形功率谱密度  ^% Y9 J2 K' h% Y0 ^" D0 o
grid;
/ u6 K! {2 T8 h( j+ L& y; r%*********************************************************************8 i# W  h7 x1 W' S0 R# C
: Z0 r+ k0 F# x7 T" N! P3 e1 h
%*********************************************************************
* g/ P, [0 B6 n& O. m% ]; h%求双极性sinc波形时域波形与功率谱密度
0 X, w/ Z! ^& vfigure(3)/ f0 v! Y( j7 j# \' I
subplot(2,1,1);
; w1 n9 h# V: G$ D# Hplot(t,yt3,'r');
5 j& R1 V$ h+ j: n8 Z& S2 gtitle('双极性sinc波形');4 y% |& e- r/ E6 \5 Z+ @+ T: y
xlabel('时间t/s');
: c& J; x/ Q9 {0 V- Paxis([0,20,-1.5,1.5]);              %画出双极性sinc波形功率谱密度
( |/ [! I. p7 P' [grid;3 Z1 ]  Y' ^0 D6 {( D8 W

1 v8 [, l. A/ r: y' N/ _, oFt3 = fft(yt3);/ H  i8 f; A. X0 ]5 p6 X
Ft3 = fftshift(Ft3);
/ ?- L2 }1 W8 d: u3 q+ lp3   = (Ft3.*conj(Ft3))/20;               %计算功率谱密度  
+ I% c1 M6 f) fff3  = (-length(Ft3)/2:length(Ft3)/2-1)/10;$ N* [& f6 V9 z( f9 s% `. C
Pf3  = 10*log10(p3);8 u7 c( C' c# T
subplot(2,1,2);
! Q$ V: T" I' `( aplot(ff3,Pf3(1:length(Ft3)));
  K! h% I7 Z! H+ A. Zaxis([-50,50,-50,60]);             %画出单极性不归零NRZ波形功率谱密度
# U) {6 b6 A6 n6 h% n" ogrid;
/ S% L0 u0 B" A; J4 Q7 n5 |%**************************
  • 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 07:12 , Processed in 0.140625 second(s), 24 queries , Gzip On.

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

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

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