سؤال

لدي مصفوفة 4 × 4 أرغب في التحلل إلى 4 نطاقات تردد (LL ، HL ، LH ، HH حيث L = منخفض ، H = مرتفع) باستخدام تحويل الموجات على مستوى واحد على مستوى واحد. نتيجة للتحويل ، يجب أن يحتوي كل شريط على معاملات 2 × 2. كيف يمكنني فعل هذا في ماتلاب؟ أعلم أن ماتلاب لديه dbaux و dbwavf المهام. ومع ذلك ، لست متأكدًا من كيفية استخدامها ولا أملك أيضًا صندوق أدوات المويجات.

أي مساعدة يحظى بتقدير كبير.

شكرًا.

هل كانت مفيدة؟

المحلول

هل جربت هذا؟

N = length(S);
S = transpose(S);
s1 = S(1:2:N-1) + sqrt(3)*S(2:2:N);
d1 = S(2:2:N) - sqrt(3)/4*s1 - (sqrt(3)-2)/4*[s1(N/2) s1(1:N/2-1)];
s2 = s1 - [d1(2:N/2) d1(1)];
s = (sqrt(3)-1)/sqrt(2) * s2;
d = (sqrt(3)+1)/sqrt(2) * d1;

كياسة http://en.wikipedia.org/wiki/Daubechies_WaveLet#Implementation

نصائح أخرى

أعتقد أن إيفان سيليسنيك حزمة برامج المويجات يدفع جميع الأزرار الصحيحة لك. ويغطي الحالات 1D و 2D و 3D القابلة للفصل ... كل من تنفيذ MATLAB والتعليمي! لا يتطلب ذلك مربع أدوات Wavelet ، ولكنه ربما يتطلب مربع أدوات معالجة الإشارات (غير متأكد من مربع أدوات معالجة الصور). كما يوفر رمزًا لتحويلات المويجات الأكثر تقدماً ، حتى تتمكن من استكشاف تقنيات بديلة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top