日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

麦克风阵列matlab,matlab关于麦克风阵列仿真的问题

發布時間:2023/12/8 循环神经网络 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 麦克风阵列matlab,matlab关于麦克风阵列仿真的问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

% 定義一個均勻線性陣列

microphone = phased.OmnidirectionalMicrophoneElement('FrequencyRange',[20 20e3]);%

Nele = 10;??% 陣元數

ula = phased.ULA(Nele,0.05, 'Element',microphone); %定義一個ula

c = 340;

%模擬麥克風陣列輸入信號

%1,確定兩個信號和噪聲的位置,(方向角,仰角)

ang_dft = [-30; 0];

ang_cleanspeech = [-10; 10];

ang_laughter = [20; 0];

%2,在原點的麥克風陣元為參考點,使用寬帶接收器模擬陣列接收的3秒輸入信號

fs = 8000;

collector = phased.WidebandCollector('Sensor',ula,'PropagationSpeed',c,...

'SampleRate',fs,'ModulatedInput', false);

t_duration = 3;

t = 0:1/fs:t_duration-1/fs;

%3.生成一個白噪聲,功率確定的

prevS = rng(2008);

noisePwr = 1e-4;

% 預處理

NSampPerFrame = 1000;??% 每個陣元采樣的長度 1000個點

NTSample = t_duration*fs; % 陣列總共要取多少個點

sigArray = zeros(NTSample,Nele); % 最終輸出結果,初始值為零陣

voice_dft = zeros(NTSample,1); % 3秒鐘的dft原聲

voice_cleanspeech = zeros(NTSample,1); % 3秒鐘的clean_speech的原聲

voice_laugh = zeros(NTSample,1); % 3秒鐘的laugh的原聲

%創建音頻設備

audioWriter = audioDeviceWriter('SampleRate',fs, ...

'SupportVariableSizeInput', true);

isAudioSupported = (length(getAudioDevices(audioWriter))>1);

% 按流的方式讀取數據,以下類似 同時這三個文件Phased工具包自帶

dftFileReader = dsp.AudioFileReader('dft_voice_8kHz.wav',...

'SamplesPerFrame',NSampPerFrame);

speechFileReader = dsp.AudioFileReader('cleanspeech_voice_8kHz.wav',...

'SamplesPerFrame',NSampPerFrame);

laughterFileReader = dsp.AudioFileReader('laughter_8kHz.wav',...

'SamplesPerFrame',NSampPerFrame);

% 仿真

for m = 1:NSampPerFrame:NTSample

sig_idx = m:m+NSampPerFrame-1;

x1 = dftFileReader();

x2 = speechFileReader();

x3 = 2*laughterFileReader();

temp = collector([x1 x2 x3],...

[ang_dft ang_cleanspeech ang_laughter]) + ...

sqrt(noisePwr)*randn(NSampPerFrame,Nele);

if isAudioSupported

play(audioWriter,0.5*temp(:,3));

end

sigArray(sig_idx,:) = temp;

voice_dft(sig_idx) = x1;

voice_cleanspeech(sig_idx) = x2;

voice_laugh(sig_idx) = x3;

end

%畫圖

plot(t,sigArray(:,3));

xlabel('Time (sec)'); ylabel ('Amplitude (V)');

title('Signal Received at Channel 3'); ylim([-3 3]);

[\code]

這段代碼是matlab官網上的一段示范代碼,但我復制到MATLAB上無法運行,我用的版本是2014a,win7系統

出現的問題:

1.創建音頻設備下的這段代碼運行時出現錯誤:未定義與 'char' 類型的輸入參數相對應的函數 'audioDeviceWrite。

2.如果刪除上面這段錯誤代碼,出現錯誤在x1 = dftFileReader();這個地方,錯誤:不允許使用類 'dsp.AudioFileReader' 的對象組成數組和括號樣式的編制索引功能。只能將類 'dsp.AudioFileReader' 的對象用作標量,或者用作元胞數組。我覺得那個1中錯誤代碼只是去調用電腦的聲卡,刪除后對整體無影響。

3.for內的temp參數是干什么的,不太清楚含義是什么,為什么設置這樣的一個量

煩勞各位了,謝謝!

總結

以上是生活随笔為你收集整理的麦克风阵列matlab,matlab关于麦克风阵列仿真的问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。