fftseq i fftshif

Tematy związane z tworzeniem dużych aplikacji. Zaganiednia dotyczące architektury oraz zasad tworzenia optymalnych rozwiązań.
klakson
Posty: 5
Rejestracja: 07 wrz 2007 00:00

fftseq i fftshif

Post autor: klakson »

Witam

Jestem początkującym użytkownikiem Labview. Muszę przekompilować pliki z matlaba do labview 7.1. Natknąłem się na dwie funkcje fftshift oraz

fftseq
function [M,m,df]=fftseq(m,ts,df)
% [M,m,df]=fftseq(m,ts,df)
% [M,m,df]=fftseq(m,ts)
% FFTSEQ Generates M, the FFT of the sequence m.
% The sequence is zero padded to meet the required frequency resolution df.
% ts is the sampling interval. The output df is the final frequency resolution.
% Output m is the zero padded version of input m. M is the FFT.
fs=1/ts;
if nargin == 2
n1=0;
else
n1=fs/df;
end
n2=length(m);
n=2^(max(nextpow2(n1),nextpow2(n2)));
M=fft(m,n);
m=[m,zeros(1,n-n2)];
df=fs/n;

Czy mogłbym liczyć na pomoc? czy istnieje odpowiednik fftseq i fftshift, a jesli nie to czy istnieja podfunkcje nextpow2 i nargin?
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: fftseq i fftshif

Post autor: jogurt_owocowy »

fftshift to nic innego jak zamiana miejscami połówek wektora zawierającego transformatę w taki sposób, aby częstotliwość zerowa była w środku - to załatwisz za pomocą operacji tablicowych.
fftseq to zwykła transformacja Fouriera poprzedzona dodaniem do wektora wejściowego odpowiedniej ilości zer. FFT w LabView jest gotowe, a dodanie zer (m=[m,zeros(1,n-n2)];) załatwia klocek Build Array.
nextpow2(n) to (jeśli dobrze pamiętam) znalezienie następnego wykładnika x takiego, że 2^x >= n - ze zrobieniem tego w LV nie będzie problemu.
nargin w LV nie ma prawa bytu w ogóle - jest to funkcja związana ściśle z Matlabem i jego sposobem przekazywania argumentów do funkcji.
Zanim zaczniesz cokolwiek robić zapoznaj się z tymi funkcjami w Matlabie, dowiedz się co dokładnie robią, bo próba jakiegoś przepisywania "linijka po linijce", bez zrozumienia co się dzieje (a coś czuję, że próbujesz iść taką ścieżką) nie przyniesie nic dobrego.
Pozdrawiam
klakson
Posty: 5
Rejestracja: 07 wrz 2007 00:00

Re: fftseq i fftshif

Post autor: klakson »

Zapoznałem się i zrobiłem nie dosłownie. Mam niestety kolejny problem.
Modulacja działa prawidłowo a demodulacja już nie. Czy mogłbyś spojrzeć gdzie popełniam błąd? M-pliki i VI-plik

Zlokalizowałem problem: w pliku matlabowym jest z=hilbert(x); x1=z.*exp(-j*2*pi*fc*ts) nie potrafie prawidłow wymnożyć tych dwóch sygnałów. Jak to złożyć z bloczków?
ODPOWIEDZ