Continuous Replay and Filter
Continuous Replay and Filter. Added a test main for people to easily test their filters.
This commit is contained in:
parent
eb6b9aaaa8
commit
6c7aa76b62
20
DarellsAnnex/DarellbandpassFilter.m
Normal file
20
DarellsAnnex/DarellbandpassFilter.m
Normal file
@ -0,0 +1,20 @@
|
||||
function output_y = DarellbandpassFilter(y,Fs,LOW,MED,HIGH)
|
||||
Len = length(y);
|
||||
F = Fs * (-Len/2 : (Len/2 - 1))/Len ;
|
||||
Mod_Freq = fftshift(fft(y));
|
||||
lenf = length(F);
|
||||
output = 0 .* Mod_Freq; % zero array of len f
|
||||
|
||||
for n = 1:lenf
|
||||
if ((LOW < abs(F(n))) && HIGH > abs(F(n)))
|
||||
output(n) = 1;
|
||||
else
|
||||
output(n) = 0;
|
||||
end
|
||||
end
|
||||
|
||||
filtered_Mod_Freq = fftshift(Mod_Freq .* output);
|
||||
|
||||
output_y = real(ifft(filtered_Mod_Freq));
|
||||
|
||||
end
|
25
src/Main_test.m
Normal file
25
src/Main_test.m
Normal file
@ -0,0 +1,25 @@
|
||||
%Basic Example test
|
||||
%Written by Darell
|
||||
amplitude = 1;
|
||||
frequency = 200;
|
||||
phase = 0;
|
||||
fs = 44800;
|
||||
duration = 1;
|
||||
duty = 0;
|
||||
|
||||
%example Sine Generation
|
||||
x = generate_sine(amplitude, frequency, phase, fs, duration, duty);
|
||||
x = x + generate_sine(amplitude, (frequency+5), phase, fs, duration, duty);
|
||||
|
||||
%play over 5 counts, should hear both frequencies, 5 beats between the 2 frequencies
|
||||
playtime = 5;
|
||||
play_continuous(x, fs, playtime)
|
||||
|
||||
LOW = 0;
|
||||
HIGH = frequency + 1;
|
||||
MED = "unused";
|
||||
x = DarellbandpassFilter(x,fs,LOW,MED,HIGH);
|
||||
|
||||
%play over 5 counts, should only hear 200hz
|
||||
playtime = 5;
|
||||
play_continuous(x, fs, playtime)
|
9
src/play_continuous.m
Normal file
9
src/play_continuous.m
Normal file
@ -0,0 +1,9 @@
|
||||
function play_continuous(wave, fs, time)
|
||||
%play_continuous: Darell Continuously Playing
|
||||
soundfile = audioplayer(wave,fs);
|
||||
countmax = time / (length(wave) / fs);
|
||||
for count = 0:1:countmax %change to counts/while play button active
|
||||
playblocking(soundfile);
|
||||
end
|
||||
end
|
||||
|
Reference in New Issue
Block a user