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?
fftseq i fftshif
- jogurt_owocowy
- Posty: 1317
- Rejestracja: 30 lis 2004 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Kraków
Re: fftseq i fftshif
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
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
Re: fftseq i fftshif
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?
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?