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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
》这一题的重点就是首先把码元表示出来,这里我是使用了randi([0,1],1,N);
' q4 V9 V$ g+ @! Q8 t0 ?
& L# i( o3 F2 U) Q: Z1 \随机生成了0或者1,生产了N个随机数。$ ]# z: Z, q# h( m, M8 |) V- G" f& P
, ]  }6 h- @; }  h: J! X
》接着表示基本码元,这里的是单极性不归零NRZ码元,所以gt1= ones(1,N_sample);%不归零。之后就应用基本码元函数来生成所需要的最后的序列。9 v& p" }0 k) Z: M

8 q$ ^1 p! V+ A》再根据所生成的每一个码元把基本码元添加到里面。( ?+ Q# |3 D+ w
0 p& \& Y% I- y  m; d9 d
yt1((i-1)*N_sample+1:i*N_sample) = gt1;  . F* c2 ]$ }: w: _

: s( p; \: G) P8 \》最后利用快速傅里叶变换fft得到频谱,再用conj求出共轭这就相当于求了频谱模的平方。接着除以时间N就可以得到功率谱。
' C9 V& j2 }8 L. \  r7 x" u4 d. `
1 |' n( @1 @* ~# c》在生成的图我们会发现有许多的冲激,那么你就可以看看这些冲击都是在哪一些位置,试着去掉着一些冲激。$ K3 u) I! r) s2 j% K

! Z2 j8 E. [7 k5 Y6 X- b9 Rfor i = 1:80  9 ~- z" c8 a. k: S

* O! M" b' H* r     Pf1(i*100 + 1) = Pf1(i*10);" }% i9 q1 ~' j' D1 z  w, M, K

: D+ R9 ?8 ?9 N. b4 Eend
- z' h1 ?( I1 K! l1 z2 N8 M( H+ j; {, ~/ f/ G
要生成别的码元表示只要稍微修改即可。/ n$ e$ u( C3 G: P' U

+ J0 j5 e* `2 y) q8 w9 n8 }  Z) r; k最后参考代码是:(图的显示的时候要多运行几次,最后效果才出来)  v, k  W; c; m& _6 ~
+ C3 J8 |+ ^& v- R
% communication principle
% L0 k& W' @( M$ P0 M0 i# G/ a8 p% Lab 6 problem 1# J* t3 i9 [2 A* E% U
function single_polar_code; S4 x: I, {: H" W
clear all;
( K) [/ e8 c$ D' a/ l# V8 J7 Rformat long;- H# K# N, Z, M( u2 ^  \* [( R
Ts       = 1;                %码元周期  l" B# T& b) `+ ?% y2 A, @$ \
N_sample = 128;              %每个码元抽样点数9 _- g; r% h! h, u& h' _
dt       = Ts/N_sample;      %抽样的时间间隔! y( I; k: ?( A8 w9 ]$ `4 c
N        = 100;               %码元数7 m5 y  Y2 a/ T+ i
t        = 0: dt: (N*N_sample-1)*dt;) {3 _, h/ F3 a( I" p/ Y  M/ c7 r+ Q
% 基本码元 g(t) = 10 \! e) T9 m% l. ^; R  w
gt1      = ones(1,N_sample);                          %不归零: h* w/ B* ]8 J$ Z  w# }
gt2      = [ones(1,N_sample/2),zeros(1,N_sample/2)];  %归零,占空比为0.5* ^! i; R9 V# Y2 }
gt3      = sinc(2*t(1:N_sample)/Ts);                  %sin(2*pi*t(1:N_sample)/Ts)/(2*pi*(1:N_sample)/Ts)
2 y; a; c) z0 I1 `  z0 K; N' ygt0      = zeros(1,N_sample);: k' o" k3 M0 q+ z( P

0 K. }" `. j" V# M7 a" J%生成随机码元
, s- O3 Z7 f; ]- i( ?5 K, T; a, ]random_code = randi([0,1],1,N);" {4 m0 ?& u; w& \+ w! W% o1 q
" _7 d9 z  ]' @# I9 Z" F+ ~
%单极性波形的最后结果5 v) ~/ g+ r8 |1 n3 L: }6 S
yt1      = zeros(1,N*N_sample-1);      , N! h' q) i  S  Y5 D
yt2      = zeros(1,N*N_sample-1);* u1 b' n7 ]4 r$ t$ X
yt3      = zeros(1,N*N_sample-1);, r/ m; n" {' i" u, @+ c) G+ d3 \/ o
for i = 1:N
+ h; e* a0 e) O) z$ F! b( \    if random_code(i) == 1                             %得到波形图' T  u! p% ^3 k, N. p7 R$ V# b4 b
        yt1((i-1)*N_sample+1:i*N_sample) = gt1;        %单极性不归零NRZ波形! B6 F$ C$ m6 y; G; F
        yt2((i-1)*N_sample+1:i*N_sample) = gt2;        %单极性归零RZ波形" f8 j& y$ J- Z/ z( g, @3 R
        yt3((i-1)*N_sample+1:i*N_sample) = gt3;        %双极性sinc波形
3 q6 p! `1 X& M1 C! C" e+ T    else
# E% H1 C( g9 G' K( n, U: C        yt1((i-1)*N_sample+1:i*N_sample) = gt0;        %没有这一行会经常报错3 x5 L9 z& j$ v& a5 A" [* e9 O: [
        yt2((i-1)*N_sample+1:i*N_sample) = gt0;
. I( f9 D, d7 d0 Z3 q6 j0 \        yt3((i-1)*N_sample+1:i*N_sample) = (-1)*gt3;( }  x$ Q# U2 c3 b0 u8 H: P4 c
    end  J7 t" o2 Y' x( U, a# O7 a
end
6 F# n7 u- b/ B. G# n" `/ `) ^% q: Y9 F" j1 `5 G
%*********************************************************************
8 ]' L8 ]. U% c%求单极性不归零时域波形于波功率谱密度9 v: R- U' v1 }' E7 r
figure(1)
. j" k' N+ t) O4 l* i: w1 Csubplot(2,1,1);. T1 ~" R  x5 ]' @
plot(t,yt1,'r');
) V6 Z" M0 L2 W1 c# l: H' n$ Mtitle('单极性不归零NRZ波形');
" [7 W) Q# y5 G9 Wxlabel('时间t/s');
$ _* p, Y4 t8 W9 ~* e$ K/ raxis([0,20,-0.5,1.5]);                %画单极性不归零NRZ波形信号幅度频谱
5 k  D5 x* h4 J1 @grid;+ z8 w7 v3 ~4 H8 A, a4 m, n6 q
# b8 M9 K" k( F
Ft1 = fft(yt1);: w- J, c* h/ o# }7 v2 M
Ft1 = fftshift(Ft1);! f" Q' N/ q8 K/ F. ~
p   = (Ft1.*conj(Ft1))/N;                    %计算功率谱密度  
, E& P" u  A2 q" sff1 = (-length(Ft1)/2:length(Ft1)/2-1)/10;
* N/ t5 g- A, E! \7 n5 w( B3 sPf1 = 10*log10(p);% }8 k3 C/ y- [; y
for i = 1:80
0 {  S! I, Q3 M+ i& d" r    Pf1(i*100 + 1) = Pf1(i*10);
) B4 K2 I9 ^: D5 Hend/ m  W0 {, N6 r1 q
subplot(2,1,2);
" M. I7 Z6 A$ e6 k2 [  N" U1 rplot(ff1,Pf1);# j3 B( ~" S0 s9 H7 p% t. ^1 F
axis([-50,50,-50,50]);               %画出单极性不归零NRZ波形功率谱密度- Z# Q- ]$ O% T
grid;
$ j# a% P. T1 s7 Y8 [& |; h%*********************************************************************0 A6 D4 V: S* j

1 a8 ~6 {/ R: P# A, e# @%*********************************************************************
% P2 P: A( X/ i%求单极性归零时域波形与波功率谱密度
) C+ }0 `3 E: h9 Ifigure(2)* z" \, c7 ]7 @8 d
subplot(2,1,1);$ j; n9 B% D, n7 m& n# F
plot(t,yt2,'r');( A2 C3 }! W7 G7 K( r. V
title('单极性归零RZ波形');
, G, b% z2 O5 q, g% zxlabel('时间t/s');
% j+ @5 `4 w+ s( l" C& Eaxis([0,20,-0.5,1.5]);              %画出单极性归零RZ波形功率谱密度
5 p$ a  P; x7 [5 `5 vgrid;7 J7 L1 r# j' a% l& p

" Z# a! @& x* n% p9 _& UFt2  = fft(yt2);
! ^7 s1 w# a  P; QFt2 = fftshift(Ft2);
9 g( }* q6 @- p0 I( B; u9 Qp2   = (Ft2.*conj(Ft2))/N;                 %计算功率谱密度  * j1 r3 g* S0 ~4 r& O, i. ]
ff2  = (-length(Ft2)/2:length(Ft2)/2-1)/10;5 p% `/ h9 ^$ @- a% c6 I: v1 n
Pf2  = 10*log10(p2);# O; ]. Z3 u; B1 P- o! Q9 N
for i = 1:80
8 b+ }" A; B' M* J6 G, V- X    Pf2(i*100 + 1) = Pf1(i*10);
( q$ |, n5 E$ e9 V! x, i2 pend- }) ]/ E7 K* U# K: H# T5 I- K8 Y% Z
subplot(2,1,2);
3 Z0 ?5 W/ s' B) {5 U* _+ uplot(ff2,Pf2);
1 [: T  O0 b$ |3 L" uaxis([-50,50,-50,50]);             %画出单极性不归零NRZ波形功率谱密度
8 {' E0 J$ R' X% Y- j+ F2 sgrid;
% L* o" Y0 x( [3 O6 ]7 S& x%*********************************************************************  F- F  g. E8 X- h( h5 Y

- t) o8 r/ ?6 ~%*********************************************************************: t" a! P/ y- R2 g" A0 l' e% o: u
%求双极性sinc波形时域波形与功率谱密度
' e6 K. _/ `, Z# a: j; vfigure(3)" Z& L; x) f/ d& j& \& U4 I
subplot(2,1,1);
3 s; ]6 V: x+ S# {& Q5 H/ A. j7 `' Gplot(t,yt3,'r');
0 K$ I+ m( {! |! W% I1 ititle('双极性sinc波形');4 Q4 }" R; S. Y0 |7 l0 N# O; J( y
xlabel('时间t/s');
$ a: z& _! C# {! qaxis([0,20,-1.5,1.5]);              %画出双极性sinc波形功率谱密度
( Y8 X* E! L; Vgrid;1 g- m: ^9 `, }& T# }: r
) ~8 ^2 L9 I! V4 {# a: U4 _
Ft3 = fft(yt3);! n( j4 o3 L4 b1 K' e: p6 l( v
Ft3 = fftshift(Ft3);
3 F+ C& X, p0 hp3   = (Ft3.*conj(Ft3))/20;               %计算功率谱密度  
7 `% n! q  g; D- hff3  = (-length(Ft3)/2:length(Ft3)/2-1)/10;
4 `( H  Z& T4 y# T, IPf3  = 10*log10(p3);! @" \; x$ L6 Z/ Y
subplot(2,1,2);. j8 `- ~5 a7 `* G* h
plot(ff3,Pf3(1:length(Ft3)));
: G  D) L6 }3 _+ x! Haxis([-50,50,-50,60]);             %画出单极性不归零NRZ波形功率谱密度2 r1 F! q, V6 g( E! I
grid;$ l3 m2 L: m: 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-7-30 13:08 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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