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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
》这一题的重点就是首先把码元表示出来,这里我是使用了randi([0,1],1,N);
" Q; W; u: [7 V$ E8 I% L6 R$ ]4 n. s
1 h$ `1 [$ `) k$ U, ?随机生成了0或者1,生产了N个随机数。
, n+ x. f9 X0 T% v% a" B* a: u" O) Q. v
》接着表示基本码元,这里的是单极性不归零NRZ码元,所以gt1= ones(1,N_sample);%不归零。之后就应用基本码元函数来生成所需要的最后的序列。* \1 Z" i8 W9 i4 L
* r. `  x+ B: ^" K
》再根据所生成的每一个码元把基本码元添加到里面。
; Y4 Q* L2 N9 Q$ J5 v5 |" B
+ s! Z8 g8 S; t- m$ cyt1((i-1)*N_sample+1:i*N_sample) = gt1;  
6 r  v) o9 i/ E* l' ~, u
* X4 @* q4 w, ~: _》最后利用快速傅里叶变换fft得到频谱,再用conj求出共轭这就相当于求了频谱模的平方。接着除以时间N就可以得到功率谱。
% N, N' \- L9 ^/ o% X# ^/ `" |8 L' @$ d" S3 q
》在生成的图我们会发现有许多的冲激,那么你就可以看看这些冲击都是在哪一些位置,试着去掉着一些冲激。7 C+ y, s+ A# L. e

5 N1 e6 J3 G5 d( E9 b  ~for i = 1:80  
0 \/ i% S& B' C* i* E
: p. I3 R8 U( {. N     Pf1(i*100 + 1) = Pf1(i*10);1 @+ V6 A7 ]9 L# n9 r
7 @0 I. I* k: J' J: A, K# x
end
3 b. L+ H2 L/ K( x# x
, A6 c. j" t- k9 }要生成别的码元表示只要稍微修改即可。8 j( p& Z4 T3 y( k- R

$ u. N" a9 W. Y0 \最后参考代码是:(图的显示的时候要多运行几次,最后效果才出来)
! n! D* ~4 d3 ~% p% m0 n
8 e  X* A+ P* j% communication principle
3 v$ i1 X& K  O. w" |+ l; B% Lab 6 problem 14 j8 d/ w9 j; J% {8 w; J4 d9 Z1 q. l% y
function single_polar_code5 j  X& k1 p. b2 e2 h
clear all;3 B+ {7 U; {7 C# u; M
format long;% @0 v2 ~1 }# p* X
Ts       = 1;                %码元周期
- [! ^, O; J* J6 N0 Z8 t3 _7 XN_sample = 128;              %每个码元抽样点数
% E6 z. w  Z8 g  Y  o) i/ fdt       = Ts/N_sample;      %抽样的时间间隔! m) b2 ~# b% Z; [; b) @% t
N        = 100;               %码元数
$ L7 X2 {6 `& L" }9 {4 pt        = 0: dt: (N*N_sample-1)*dt;
2 @9 r9 l/ I: f% 基本码元 g(t) = 1- p9 H4 O5 ~5 p0 ~2 E
gt1      = ones(1,N_sample);                          %不归零1 q3 }$ k- M! S9 Z! g2 u/ q
gt2      = [ones(1,N_sample/2),zeros(1,N_sample/2)];  %归零,占空比为0.5
$ V! A5 M+ h5 \7 \1 ]/ Z2 d& F6 y/ `gt3      = sinc(2*t(1:N_sample)/Ts);                  %sin(2*pi*t(1:N_sample)/Ts)/(2*pi*(1:N_sample)/Ts)1 ]$ I$ g5 p: P# ]6 Q- U
gt0      = zeros(1,N_sample);4 ]$ j! y+ U% }; E1 x: }

" I0 F( ~5 X; y) P' ]' d%生成随机码元
, b4 W; A/ u# e4 K" M; w- k" t' orandom_code = randi([0,1],1,N);
+ D2 Q5 b: J) B4 |. c5 R& _5 s* F
6 J& {$ e3 N6 h6 m7 X& Q/ W- ~9 N$ q%单极性波形的最后结果8 @' t3 y7 D+ E7 v+ i  P
yt1      = zeros(1,N*N_sample-1);      
3 I' I2 {  X; eyt2      = zeros(1,N*N_sample-1);  p0 B9 {" a; h- r
yt3      = zeros(1,N*N_sample-1);
" a3 _; n8 V# G2 X1 c4 P- ifor i = 1:N
  k5 v! l' ^. R6 O    if random_code(i) == 1                             %得到波形图
5 |& }- m. W; V; L' v1 X        yt1((i-1)*N_sample+1:i*N_sample) = gt1;        %单极性不归零NRZ波形
- _' a' W! P: \( [+ a. T        yt2((i-1)*N_sample+1:i*N_sample) = gt2;        %单极性归零RZ波形
  M3 B/ x# i$ V- S0 S/ \- O        yt3((i-1)*N_sample+1:i*N_sample) = gt3;        %双极性sinc波形
. j/ L3 ?6 U( O9 |; N  M    else; X: y0 u& W; v" n& O
        yt1((i-1)*N_sample+1:i*N_sample) = gt0;        %没有这一行会经常报错! F8 W5 d5 o  r4 ^" y+ l
        yt2((i-1)*N_sample+1:i*N_sample) = gt0;
7 f5 p$ [) W  D/ \" C! x/ t5 F        yt3((i-1)*N_sample+1:i*N_sample) = (-1)*gt3;% c/ \6 \7 f1 K0 T. k$ [
    end
) v  j) l/ R( b# i, s# Mend, _; J1 j0 [) R% |; D
# V- @5 ?" D, ]' p
%*********************************************************************
8 c. b4 ?6 d2 R' b%求单极性不归零时域波形于波功率谱密度5 c2 ^8 W  c$ K1 y! r" ?4 |
figure(1)1 ^" K  C. l9 [
subplot(2,1,1);0 {' ~4 o+ H: h$ B( K3 P
plot(t,yt1,'r');
  [! K- z% ~! Y0 Dtitle('单极性不归零NRZ波形');+ s! [9 C9 y1 A
xlabel('时间t/s');% s, l, J9 V; h) E. s& U* _8 [
axis([0,20,-0.5,1.5]);                %画单极性不归零NRZ波形信号幅度频谱
1 d* P1 ?- H! v  ugrid;
4 {) H7 |& I4 x' I4 X6 ?4 t+ ?# f3 s( V- u9 u
Ft1 = fft(yt1);4 H/ @, b2 I6 V0 |6 b, R) K
Ft1 = fftshift(Ft1);
- o7 }, i- @7 {p   = (Ft1.*conj(Ft1))/N;                    %计算功率谱密度  ; N7 A4 _& [1 s1 k& f
ff1 = (-length(Ft1)/2:length(Ft1)/2-1)/10;$ g  g  [: z& E
Pf1 = 10*log10(p);; h" C% m! }0 I9 N7 D8 n, E
for i = 1:80- F  k8 w. t3 h7 X# s$ o7 S0 W' d
    Pf1(i*100 + 1) = Pf1(i*10);. ~/ P& e! i# T( `; |& C% L
end& c, B- V5 [7 Z/ g7 B$ a, I* G; ?
subplot(2,1,2);
7 n$ p$ b- P' Q$ Y' [plot(ff1,Pf1);, F/ ~# k' U9 Z- E9 A
axis([-50,50,-50,50]);               %画出单极性不归零NRZ波形功率谱密度/ M! Z% Z' u: T. X4 K# B
grid;
) q7 s! h8 S  P, I' Z7 h%*********************************************************************4 ^# P5 h# @& b/ z( `" K$ s

. Q0 J6 U9 h" I6 R%*********************************************************************
2 N  R* t# l+ y4 V! a; y6 S7 I%求单极性归零时域波形与波功率谱密度
8 Q: S% a& C) B4 I2 Tfigure(2)
( o1 w/ i& J/ N4 s4 ssubplot(2,1,1);
7 P* Y. v6 v5 g  [9 u0 C. n3 `9 Mplot(t,yt2,'r');
2 l% B8 m: u' @% {3 |! qtitle('单极性归零RZ波形');# T+ C7 X$ |  I9 g( S! L
xlabel('时间t/s');* j' S6 z9 S$ k! i
axis([0,20,-0.5,1.5]);              %画出单极性归零RZ波形功率谱密度- H2 J( @1 n$ m2 x
grid;
9 n5 {, F* w0 x/ p& y, R4 y, w( \1 ~7 D# @' J( W# D- }
Ft2  = fft(yt2);6 B" }+ |4 v' o
Ft2 = fftshift(Ft2);
& D2 w& \2 s5 u$ @' O* e8 Cp2   = (Ft2.*conj(Ft2))/N;                 %计算功率谱密度  / I$ q. o/ r9 l3 P3 e8 E
ff2  = (-length(Ft2)/2:length(Ft2)/2-1)/10;
  h) I2 l( t( m; iPf2  = 10*log10(p2);. G9 r: r& X0 o
for i = 1:80
: d# i8 X) [& T" M    Pf2(i*100 + 1) = Pf1(i*10);
1 y; w# o/ h1 [/ O+ Aend: M- U2 f8 ~! f
subplot(2,1,2);
/ J, ^3 Z6 v  }: `9 W+ Splot(ff2,Pf2);" i- n! L, o* f7 b& t2 E; j
axis([-50,50,-50,50]);             %画出单极性不归零NRZ波形功率谱密度" o7 M: }7 {% Z
grid;1 J- \* D. m! U* P: C
%*********************************************************************
4 L. B2 ?8 h- a
) x. v! q, H7 O5 T( _+ _%*********************************************************************- H9 r0 D) T7 W$ a4 B+ x
%求双极性sinc波形时域波形与功率谱密度  y$ L7 O; a; f
figure(3)0 i: Q, S3 \! q0 G4 y5 H
subplot(2,1,1);) V8 o6 r/ K. _5 |; E! m% @
plot(t,yt3,'r');
+ x$ k- T! p: t6 E' B, a! ztitle('双极性sinc波形');) E/ f7 v8 g8 l9 m: @; Y) X$ T
xlabel('时间t/s');: `# ~' T' K* v
axis([0,20,-1.5,1.5]);              %画出双极性sinc波形功率谱密度
) l7 v: z9 Y+ h  v$ ngrid;
2 V1 p4 T0 J1 K5 n, s- @- T7 `! D: d& ]
Ft3 = fft(yt3);
+ @+ S  [6 K7 `1 ]. K: o  `Ft3 = fftshift(Ft3);
+ ~# c6 ]: x. \9 M  vp3   = (Ft3.*conj(Ft3))/20;               %计算功率谱密度  
) O" _: |8 j# V& p! D' ~/ Z: Uff3  = (-length(Ft3)/2:length(Ft3)/2-1)/10;9 Y$ u9 {1 O8 `0 Z) l! O
Pf3  = 10*log10(p3);
1 h  X2 c+ E- a+ R+ o4 G% l+ msubplot(2,1,2);
. G. ?0 d' X# c3 e2 [- Fplot(ff3,Pf3(1:length(Ft3)));
: Z7 s+ Q2 a/ Z  n8 [! b. Laxis([-50,50,-50,60]);             %画出单极性不归零NRZ波形功率谱密度; S8 S" V  j& Q8 A# N0 j9 n
grid;; N/ W* \2 R. |3 V0 D) o+ D' H* W
%**************************
  • 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-2 15:13 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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