matlab 控制声卡,请问高手关于matlab控制声卡输出的问题
該樓層疑似違規(guī)已被系統(tǒng)折疊?隱藏此樓查看此樓
請問高手,怎么我采樣之后經聲卡輸出在示波器里看到的波形和采樣濾波后的信號不一樣呢?請高手幫忙
不知道怎么把采樣濾波后的信號原樣輸出來,謝謝。
程序輸出部分有問題嗎?
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控制声卡输出的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html5media 网页播放视频,ht
- 下一篇: php视图查询的优势,ThinkPHP视