概述
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
请问高手,怎么我采样之后经声卡输出在示波器里看到的波形和采样滤波后的信号不一样呢?请高手帮忙
不知道怎么把采样滤波后的信号原样输出来,谢谢。
程序输出部分有问题吗?
ai = analoginput('winsound');
ch=addchannel(ai,1);
set(ai,'SampleRate',44100)
set(ai,'SamplesPerTrigger',44100*5);
start(ai)
[data,time] = getdata(ai);
delete(ai)
figure;
subplot(211),plot(time,data); %时域图
title('Time-Domain');
xlabel('time /s');ylabel('magnitude /V');
%cheby2型滤波
[b,a] = cheby2(9,20,300/22050);%设计9阶,带阻波纹20dB,不
%确定是从20开始,300/22050为归一化频率
[fil,zf]=filter(b,a,data); %zf为滤波器延迟
subplot(212),plot(time,fil);title('fitered signal');
xlabel('time /s');ylabel('magnitude /V');
%进行FFT变换并做频谱图
y=fft(data);%进行fft变换
mag=abs(y);%求幅值
mag1=20*log10(mag);
f=(0:length(y)-1)'*44100/length(y);%进行对应的频率转换
figure;
subplot(211);
plot(f(1:64),mag1(1:64));%做频谱图
%axis([0,150,0,500]);
xlabel('Frequency /Hz');
ylabel('Magnitude /dB');
title('Samples FFT N=128');
grid;
%绘制功率谱
sq=mag1.^2;
subplot(212);
plot(f(1:64),sq(1:64));
xlabel('Frequency(Hz)');
ylabel('Power Spec');
title('Spec');
grid;
%处理信号输出
ao = analogoutput('winsound');
addchannel(ao,1);
set(ao,'SampleRate',44100);
set(ao,'TriggerType','Manual')
putdata(ao,fil);
start(ao);
trigger(ao);
waittilstop(ao,6)
stop(ao);
delete(ao);
最后
以上就是细腻抽屉为你收集整理的matlab 声卡输出,请问高手关于matlab控制声卡输出的问题的全部内容,希望文章能够帮你解决matlab 声卡输出,请问高手关于matlab控制声卡输出的问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复