2012-02-08 24 views

答えて

4

OKを10個の000サンプルを生成する方法の簡単な例は非常に簡単です:に

%range of possibles frequencies 
FrequenciesRandon = [200:1:500]; 

%number of randon frequencies ?? 
nf = 5; 

EndSignal=[]; 

for j = 1 : nf 
    t = [ 0 : 1 : 10000];   % Time Samples 
    f=randsample(FrequenciesRandon,1); % get the randon frequencie 
    Fs = 44100;      % Sampling Frequency 
    data = sin(2*pi*f/Fs*t)';  % Generate Sine Wave 
    EndSignal= [data;EndSignal];  
end 

wavplay(EndSignal,Fs) 
+0

オハイオ州のおかげで私はそれを得ました...そして、2つの周波数が、サンプルの..ループは、その後、動作しません。私はこれに解決策を得ることができますか? – saya

3

こんにちは、私はMathWorks社のMATLABでこれを行うには準備ができて機能を知っているが、MathWorks社のMATLABでそれを行うには、別の例450Hzで

t = [ 0 : 1 : 10000];   % Time Samples 
f = 450;      % Input Signal Frequency 
Fs = 44100;      % Sampling Frequency 
data = sin(2*pi*f/Fs*t)';  % Generate Sine Wave 
wavplay(data,Fs)     %to Listen 
+0

これは私が実際に必要なものではありません。単一の波は異なる周波数を含んでいるはずです... pls – saya

0

ここでは、異なる連続周波数の例を示します。

% Generate a sequencial sinusoid 
fs = 8000;          % sampling rate 
amp = 1;           % amplitude 
freqs = [262, 294, 330, 350, 392, 440, 494, 523]; % frequency in Hz 
T = 1/fs;           % sampling period 
dur = 0.5;          % duration in seconds 
phi = 0;           % phase in radian 
y = []; 

for k = 1:size(freqs,2) 
    x = amp*sin(2*pi*freqs(k)*[0:T:dur-T]+phi); 
    y = horzcat(y,x); 
end 
関連する問題