Comment puis-je augmenter/diminuer (fréquence/hauteur) et la phase en utilisant fft/ifft Je pense que j'ai le code de base, mais je ne suis pas sûr de savoir quoi faireComment puis-je augmenter/diminuer (fréquence/hauteur) du signal
On m'a dit repmat et le rééchantillonnage peut aider, oui je veux déplacer linéairement tous les composants. Je veux ajuster la phase au fil du temps afin qu'elle crée une onde stationnaire. Un signal avec la changement de phase dans un sens et un autre signal avec la phase aller la direction opposée
PS: Il est fait dans Octave/code Matlab
Exemple I ont un signal que de les répétitions 1 fois chaque seconde et je veux pour le faire répéter 3 fois par seconde à la place.
%Voiceprint raise lower freq phase conjugate signal
tic
clear all, clc,clf,tic
%% Sound /beep calculation complete
filerawbeepStr='calculations_complete.wav';
filerawbeeppathStr='/home/rat/Documents/octave/raw/';
filevoiceprepathStr='/home/rat/Documents/octave/eq_research/main/transform/voice/';
filewavpathStr='/home/rat/Documents/octave/eq_research/main/transform/wav/';
[ybeep, Fsbeep, nbitsbeep] = wavread(strcat(filerawbeeppathStr,filerawbeepStr));
%addpath(”/home/rat/Documents/octave/eq_research/main/transform/”); %add path to location of functions
%1a voice print import
[vp_sig_orig, fs_rate, nbitsraw] = wavread(strcat(filevoiceprepathStr,'voice8000fs.wav'));
%vp_sig_orig=vp_sig_orig’;
vp_sig_len=length(vp_sig_orig);
%2a create frequency domain
ya_fft = fft(vp_sig_orig);
vp_sig_phase_orig = unwrap(angle(ya_fft));
%get Magnitude
ya_fft_mag = abs(ya_fft);
%3a frequency back to time domain
ya_ifft=real(ifft(ya_fft));
%adjust frequency/phase here? How?
vp_sig_new=real(ifft(ya_fft_mag.*exp(i*vp_sig_phase_orig)));
subplot(3,1,1), plot(vp_sig_orig),title('1 original time domain')
subplot(3,1,2), plot(ya_ifft),title('2 rebuild time domain')
subplot(3,1,3), plot(vp_sig_new),title('3 adjusted time')
* Comment * souhaitez-vous modifier la fréquence de chaque composant, exactement? Correction fixe (c'est-à-dire linéaire) de tous les composants? Mise à l'échelle de tous les composants par facteur constant (c.-à-d. Et que voulez-vous exactement faire avec la phase (et pourquoi)? –
@Paul R On m'a dit repmat et resample peut aider, oui décalage linéaire de tous les composants. Je veux ajuster la phase au fil du temps afin qu'elle crée une onde stationnaire. Un signal avec la phase changeant dans une direction et un autre signal avec la phase allant dans la direction opposée –
OK - vous devriez probablement éditer votre question pour inclure cette information - alors il sera plus clair quant à ce que vous essayez d'accomplir –