信号取样与取样定理matlab编程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了信号取样与取样定理matlab编程相关的知识,希望对你有一定的参考价值。

1、 设有3个不同频率的正弦信号,频率分别为f1=100hz,f2=200hz,f3=3800hz。现在用取样频率fs=4000hz对这3个正弦信号进行取样,绘出各取样信号的波形及其频谱,并分析其频率混叠现象。2、结合取样定理,编程实现Sa(t)信号经过冲击脉冲取样后得到的取样信号fs(t)极其频谱,并利用fs(t)重构Sa(t)信号。求matlab程序代码急~~

clc
close all
clear all
ts=1/4000;
dt=0.0001;
t1=-0.01:dt:0.01;
ft1=sin(2*pi*100*t1);
subplot(221);plot(t1,ft1,'linewidth',2);grid;
axis([-0.01 0.01 -1.1 1.1]);xlabel('姓名t(sec)');title('f(t)');

w=-200*pi:0.01:200*pi;
f1=0.01*ft1*exp(-j*t1'*w);
subplot(222);plot(w,abs(f1),'linewidth',2);grid;
xlabel('姓名\omega');title('|f(j\omega)|');
axis([-200*pi 200*pi -0.05 1.1]);

t2=-0.01:ts:0.01;
fst1=sin(2*pi*100*t2);
subplot(223);plot(t1,ft1,':');hold on
stem(t2,fst1);hold off;grid;
axis([-0.01 0.01 -1.2 1.2]);xlabel('姓名t(sec)');title('f_s(t)');

fsw1=ts*fst1*exp(-j*t2'*w);
subplot(224);plot(w,abs(fsw1),'linewidth',2);grid;
axis([-200*pi 200*pi -0.001 0.011]);
xlabel('姓名\omega');title('|f_s(\omega)|');第二个:clc
close all
clear all
ts=1/4000;
dt=0.0001;
t1=-0.01:dt:0.01;
ft2=sin(2*pi*200*t1);
subplot(221);plot(t1,ft2,'linewidth',2);grid;
axis([-0.01 0.01 -1.1 1.1]);xlabel('t(sec)');title('f(t)');

w=-200*pi:0.01:200*pi;
f2=0.01*ft2*exp(-j*t1'*w);
subplot(222);plot(w,abs(f2),'linewidth',2);grid;
xlabel('\omega');title('|f(j\omega)|');
axis([-200*pi 200*pi -0.05 0.21]);

t2=-0.01:ts:0.01;
fst2=sin(2*pi*200*t2);
subplot(223);plot(t1,ft2,':');hold on
stem(t2,fst2);hold off;grid;
axis([-0.01 0.01 -1.2 1.2]);xlabel('t(sec)');title('f_s(t)');

fsw2=ts*fst2*exp(-j*t2'*w);
subplot(224);plot(w,abs(fsw2),'linewidth',2);grid;
axis([-200*pi 200*pi -0.001 0.0021]);
xlabel('\omega');title('|f_s(\omega)|');
第三个:clc
close all
clear all
ts=1/4000;
dt=0.0001;
t1=-0.01:dt:0.01;
ft3=sin(2*pi*3800*t1);
subplot(221);plot(t1,ft3,'linewidth',2);grid;
axis([-0.01 0.01 -1.1 1.1]);xlabel('t(sec)');title('f(t)');

w=-200*pi:0.01:200*pi;
f3=0.0000263*ft3*exp(-j*t1'*w);
subplot(222);plot(w,abs(f3),'linewidth',2);grid;
xlabel('\omega');title('|f(j\omega)|');
axis([-200*pi 200*pi -0.0000005 0.000011]);

t2=-0.01:ts:0.01;
fst3=sin(2*pi*3800*t2);
subplot(223);plot(t1,ft3,':');hold on
stem(t2,fst3);hold off;grid;
axis([-0.01 0.01 -1.2 1.2]);xlabel('t(sec)');title('f_s(t)');

fsw=ts*fst3*exp(-j*t2'*w);
subplot(224);plot(w,abs(fsw),'linewidth',2);grid;
axis([-200*pi 200*pi -0.0001 0.0021]);
xlabel('\omega');title('|f_s(\omega)|');
参考技术A 去csdn找下,或者程序员联合开发网,csdn的博客也可以找,下载那可以找相关资找找www.csdn.netwww.pudn.com 参考技术B 这个问题有点难

单片机怎样对交流电压电流取样

先把交流电压和电流的幅度通过运放、电阻网络等措施调整到单片机AD能够接受的范围内,然后用软件多点采样,一般16点以上每周波,再通过均方根计算,得到电压电流值。
值得注意的是要同步,就是把电压信号或者电流信号的其中一路,用高速光耦连到单片机中断引脚,这样单片机就可以跟随着交流电的频率进行采样了,这样的效果会更加稳定准确。
参考技术A 用电流传感器取出电流信号经电阻改为电压信号,再经过ad采样,单片机处理后按系统要求比例经da输出你想要的电压。
0~50ma--->100欧电阻---》运放---》ad芯片---》mcu-----》d/a---》运放
参考技术B

    降压到一定范围(根据AD芯片),

    进行AD转换,

    定时采集。

    单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。

参考技术C 降压到一定范围(根据AD芯片)进行AD转换,定时采集就可以了。

以上是关于信号取样与取样定理matlab编程的主要内容,如果未能解决你的问题,请参考以下文章

抽样函数是冲激脉冲函数吗

一维信号频谱图仿真——matlab

关于用MATLAB设计确定信号的频谱分析和滤波

如何用matlab实现fir低通滤波器

Matlab系列数字信号处理:抽样定理和卷积的matlab实现

matlab怎样求卷积?