linear-predictive-speech-synth/lpss_preemph.m
2020-11-06 19:08:42 +00:00

45 lines
1.0 KiB
Matlab

%% lpss_preemph.m
%%
%% Load wav and play with preemphasis filter
close all;clear all;clc;
[y, Fs] = audioread('samples/hood_m.wav');
b = [1 -0.68];
[filter_vals, filter_freqs] = freqz(b, 1, 1000, Fs);
%% PREEMPH FILTER RESPONSE
figure(1)
plot(filter_freqs, filter_vals);
xlabel('Frequency (Hz)')
ylabel('Amplitude')
%% ORIGINAL FFT
[freq_dom_freqs, freq_dom_vals] = fft_(y, Fs);
figure(2)
plot(freq_dom_freqs, 20*log10(freq_dom_vals));
xlabel('Frequency (Hz)')
ylabel('Amplitude')
title('Original spectrum')
%% POST FILTER FFT
y_filt = filter(b, 1, y);
[freq_dom_freqs_post, freq_dom_vals_post] = fft_(y_filt, Fs);
figure(3)
plot(freq_dom_freqs_post, 20*log10(freq_dom_vals_post));
xlabel('Frequency (Hz)')
ylabel('Amplitude')
title('Post-filter spectrum')
%% BOTH
figure(4)
plot(freq_dom_freqs, 20*log10(freq_dom_vals), 'b');
hold on
plot(freq_dom_freqs_post, 20*log10(freq_dom_vals_post), 'r--');
hold off
xlabel('Frequency (Hz)')
ylabel('Amplitude')
legend('Original Signal', 'Filtered')
title('Post-filter spectrum')