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

Matlab之采样定理

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

0 u4 h& O1 K4 p$ P! p0 Y: r, m当你看到我的博客的时候说明你已经做到快要吐血了,不过不用担心。可以看看我的,做的不一定对,不过可以借鉴一下!
3 g6 z! s* Y; ^, }" e
+ t- ^. G% n. l  P, B) r$ Y    对连续信号进行等间隔采样形成采样信号,采样信号的频谱是原连续信号的频谱以采样频率为周期进行周期性的延拓形成的。设连续信号的的最高频率为Fmax,如果采样频率Fs>2Fmax,那么采样信号可以唯一的恢复出原连续信号,否则Fs<2Fmax会造成采样信号中的频谱混叠现象,不可能无失真地恢复原连续信号。
. ~; T$ E) ]9 \' ~) E
0 l9 j3 v# Z8 B    首先是得到原信号的波形和频谱:
! {: h+ }! X% q, ^' {( M, `7 ~" A7 W
function Lab5_2_Sample_theorem1
$ \+ X# m& v3 @/ f8 Y( A2 ?# H( r%t = 0:0.00001:0.1;& k+ R' [. z9 S! {' t# D$ s$ u
%f = sin(2*pi*60*t)+cos(2*pi*25*t)+cos(2*pi*30*t);
8 L: [5 F$ [( ?* v; W: Z, N%plot(t,f,'r');8 Q) W7 a4 o; K/ C4 F) u9 T7 D
fy = 'sin(2*pi*60*t) + cos(2*pi*25*t) +cos(2*pi*30*t)';, m/ K8 s0 B5 ^8 f- [- _$ H
% 第一个输入变量函数是原信号函数,信号函数fy以字符串的格式输入
9 N7 Q. T- z6 Q( lfs0 = 10000;  {; L3 K0 e$ N9 ?6 f( w+ w8 O* M
tp  = 0.1;
! y" e# ^8 u# d! l3 R% f) wt   = -tp:1/fs0:tp;  001个样本点
7 D1 v2 E1 G; n  B! sk1  = 0:999;2 `& a) X& L5 i8 A4 w; N3 \6 \
k2  = -999:-1; 1 L0 Y" @: a: F0 M9 y" z
m1  = length(k1);
. B) V: {) ?) w. m/ pm2  = length(k2);
5 |4 @! z+ v! i* ]" V3 U3 bf   = [fs0*k2/m2,fs0*k1/m1];%f 1999/ F- _5 \; R. \# s, X7 Q
w   = [-2*pi*k2/m2,2*pi*k1/m1];%w = 2*pi*K/N,这里少算了头尾两点( q1 w) y) s* {) ?/ ]' u3 T
fx1 = eval_r(fy);  %fx1 = sin(2*pi*60*t)+cos(2*pi*25*t)+cos(2*pi*30*t)& f! U$ Q- \% T
FX1 = fx1*exp(-1i*((1:length(fx1))./10)'*w); %除10好像得到了补0的效果
$ L! j% |; L+ W# @% H%求原信号的离散时间傅里叶变换
/ V- v3 M. ~8 `! ^3 c8 i4 }figure(1);: N! P  N* \3 E& q8 }; n
%h画出原信号波形
; c/ X9 {- y5 a; P) r, F( s, x' tsubplot(1,2,1);plot(t,fx1,'r');
, |" ?4 q, ^! |% [1 v# Q, ititle('原信号');
; a* b/ ]1 z& Q  s6 m) y( v8 Qxlabel('时间t/s');
' u; C( k0 T5 aaxis([min(t),max(t),min(fx1),max(fx1)]);       %画原信号幅度频谱/ U* r6 S0 X8 J, D  O$ H: X1 F
subplot(1,2,2);/ q# y7 p# ~" Q* _" `$ w3 G
plot(f,abs(FX1),'r');% c! `3 F. Y  {9 g7 N
title('原信号幅度频谱');
/ w& j8 P, k& F% n+ O8 Uxlabel('频率f');
) @; V" {( X& ~8 D$ T) _/ Caxis([-1000,1000,0,max(abs(FX1)+5)]);          %画原信号幅度频谱. `$ p- y* [7 x7 \5 B# [) a

7 N& S' G. `9 y9 }% j8 g    其实把上面代码改一改就可以用到求采样信号的了。这里的卷积我试过很多种,以下的是我目前试出来唯一一个可以用的。
4 m: {; S2 I& ]% P. W% R3 ^
7 X* D/ d4 [& a/ ?% 对信号进行采样7 N8 E) ^3 A: q; l4 Y0 g
fs   = 150;   % 采样频率
0 t: X, }% U# eTs   = 1/fs;8 |  Y* p$ L7 l7 _
ws   = Ts*w;# ?) ^  m4 f( S  |& }
ts   = Ts*(1:length(t));9 c4 `" l5 z8 l
fst  = sin(2*pi*60*ts)+cos(2*pi*25*ts)+cos(2*pi*30*ts);% `. f1 i6 N% i+ y' f# j
Fs1 = fst*exp(-1i*((1:length(fst))./10)'*ws);4 ]& ]+ e, x6 e. G+ N" G* I  m
length(fst)
, J7 c% e1 L- O# \7 bfigure(2);
3 P# a$ b1 A6 K) v" h* ?- N( ]subplot(1,2,1);plot(ts,fst,'r');" y( V- c" i% Y+ ?- N; l' L% z
title('采样信号');
+ J* ?# O  y! l* T2 K; @; `xlabel('时间t/s');
+ P' R; E0 Y' U7 ]: e! Oaxis([min(ts),0.5,min(fst),max(fst)]);       %画原信号幅度频谱
# b3 ~0 w4 ^6 jsubplot(1,2,2);
) K& U% R) w1 oplot(f,abs(Fs1),'r');# l0 U7 o) D0 }  P. _9 R" W
title('幅度频谱');
9 C1 |, k; l) z# D4 ?8 |xlabel('频率f');- E0 i  S( c& n0 j, E
t1 = 1:length(t);%这里的冲击信号这么大是为了和采样信号的相匹配,最后结果因为用的是卷积所以这样
6 ^) m- H1 E/ l5 y% y" X  h%求h(t)8 m% |+ J- _( S, P) @' R
ht = Ts*sin(2*pi*t1/Ts)./(t1*pi);
$ _5 u4 X+ j# ?  L! XFt = conv(ht,fst);
& I* ?. t6 x" d/ g7 wn = 1: max([length(fst)+length(ht)-1,length(fst),length(ht)]);
$ Z' V- b5 N, G& ]& e+ b& H' Y. S. ~figure(4);
. C% x2 n# w! q: D  hplot(n,Ft,'b');
7 Z* O4 d% `. S& E& Q! baxis([200,450,min(Ft),max(Ft)]);, r/ Y  U  z0 I% a) L8 o" Z

7 w' R" O* V& N' a! A4 g% j1 \    当然自己求卷积的话还有很多方法。一下就介绍一种方法:6 {0 O6 e2 H! H& M' V8 e+ O1 j

, R( e! j0 \  J$ U4 Yy = -0.1:0.001:0.1;# M$ D7 n9 S4 p% Q$ ?/ b7 z
n = -0.1/T:0.1/T;
; j; U4 X6 G: d9 _6 EM=ones(length(n),1)*y-n'*T*ones(1,length(y));) u7 k/ w( O  b( _+ g
fs = fg*sinc(frequency*M);
( A' |& z$ w0 |! ]5 B+ g0 D# g$ g4 M& E" _, n4 O
    这个就是里面卷积常用的公式。就是有上下限,再相乘的,以上就是得到冲激函数。
  • TA的每日心情

    2019-11-29 15:37
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2020-10-20 16:50 | 只看该作者
    Matlab之采样定理
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-8-14 11:31 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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