Cách tìm tích chập Thông tư MOD-2 cho hai chuỗi và .
Tôi biết câu trả lời là từ MATLAB nhưng tôi không biết làm thế nào để tìm thấy nó bằng đồ họa hoặc toán học
Cách tìm tích chập Thông tư MOD-2 cho hai chuỗi và .
Tôi biết câu trả lời là từ MATLAB nhưng tôi không biết làm thế nào để tìm thấy nó bằng đồ họa hoặc toán học
Câu trả lời:
Viết và tính , nghĩa là chia cho và chỉ lấy phần còn lại. Mặc dù điều này có vẻ rất phức tạp, nhưng nếu bạn nghĩ về nó một chút, bạn sẽ thấy rằng tất cả những gì bạn đang làm là chia thành và và thêm các vectơ ngắn hơn để có . Lặp lại cho để thêm bốn vectơ có độ dài để có được . Điều này có lẽ không quá khó để thực hiện trong MATLAB mặc dù tôi không đủ quen thuộc với cú pháp để đề xuất các lệnh cụ thể. Tiếp theo, tính toán tích chập tuần hoàn của và mà không cần gọi các hàm MATLAB. Kết quả là
Về mặt toán học, những gì bạn đang làm là tính toán có thể được thực hiện ngay từ đầu bằng cách tìm bằng cách sử dụng FFT và những gì bạn đã theo dõi (điều này thực sự cắt vectơ dài thành các đoạn ngắn và thêm chúng), hoặc đơn giản hơn bằng cách tính toán đầu tiên và (cắt thành các vectơ ngắn hơn và thêm chúng) và sau đó tính toán tích chập tuần hoàn rất dễ thực hiện.
Chop-add-confolve dễ hơn so với chập-chập-add
Một cách tiếp cận là "bọc lại" một tổ hợp tròn có kích thước đầy đủ:
sum(reshape(ifft(fft(x, 8) .* conj(fft(h, 8))), 2, 8 / 2), 2)
Một cách thực hiện khác là trực tiếp xác định FFT:
N = 2;
Xf = fft(x); Xf = Xf(1:length(Xf) / N:end);
Hf = fft(h); Hf = Hf(1:length(Hf) / N:end);
ifft(Xf .* conj(Hf))
Nếu những gì bạn muốn sao chép là hành vi của cconv từ matlab thì tốt nhất bạn chỉ nên xem mã nguồn của nó trong các tệp matlab :)